14

I tried to open an EPS image with Pyzo, I have installed PIL and Ghostscript (as I saw that it is necessary on some other website topics), my code is:

from PIL import Image
im = Image.open('''myimage.eps''')
im.show()

but when I run the code, Pyzo return me:

OSError: Unable to locate Ghostscript on paths

I tried to look into it on several websites but it seems pretty complicated for a novice coding student.

Phil Dukhov
  • 67,741
  • 15
  • 184
  • 220
A.Rouet
  • 141
  • 1
  • 1
  • 5
  • This one fixes my issue: https://www.tutorialexample.com/fix-oserror-unable-to-locate-ghostscript-on-paths-for-python-beginners-python-tutorial/ – Amin Saqi Mar 17 '21 at 12:14

2 Answers2

10

In case someone else encounters this issue: It seems that Ghostscript has not been added to the paths properly. For those running Win7, here is a fix:

Go to: Control Panel -> System -> Advanced system settings -> Environment Variables...

Find the variable "PATH" -> Edit... -> add the path to your ghostscript binary folder, e.g.

C:\Program Files\gs\gs9.22\bin\;

to the end of the variable. It should be separated from the previous entry by a semicolon.

I had to restart for the changes to take effect.

Jannis
  • 401
  • 1
  • 4
  • 9
  • 3
    All this time I used `pip install ghostscript` thinking it would yield the same result. Apparently you have to manually download gs and set environment variables. – Pavisa Jul 17 '18 at 12:00
8

You need ghostscript.

  1. download: https://www.ghostscript.com/download/gsdnld.html

  2. Tell the variable(EpsImagePlugin.gs_windows_binary) what the path of EXE(gswin64c, gswin32c, gs ) it is. (If you don't want to change the system path.)

from PIL import EpsImagePlugin
EpsImagePlugin.gs_windows_binary =  r'X:\...\gs\gs9.52\bin\gswin64c'
im = Image.open('myimage.eps')
im.save('myimage.png')

You can see the following on PIL.EpsImagePlugin.py

# EpsImagePlugin.py

__version__ = "0.5"

...

gs_windows_binary = None  # 

def Ghostscript(tile, size, fp, scale=1):
    """Render an image using Ghostscript"""

    ...

    if gs_windows_binary is not None:
        if not gs_windows_binary:   # 
            raise WindowsError("Unable to locate Ghostscript on paths")
        command[0] = gs_windows_binary

So that's why I tell you to set the gs_windows_binary will work.

Carson
  • 6,105
  • 2
  • 37
  • 45