Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OSError: Unable to locate Ghostscript on paths

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.

like image 392
A.Rouet Avatar asked Jun 16 '17 10:06

A.Rouet


2 Answers

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.

like image 145
Jannis Avatar answered Oct 12 '22 20:10

Jannis


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.

like image 7
Carson Avatar answered Oct 12 '22 18:10

Carson