OSError: Unable to locate Ghostscript on paths

后端 未结 2 2180
不知归路
不知归路 2020-12-21 00:58

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 websites\'topics), my code is:

from         


        
相关标签:
2条回答
  • 2020-12-21 01:36

    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.

    0 讨论(0)
  • 2020-12-21 01:43

    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.

    0 讨论(0)
提交回复
热议问题