故障在Windows上安装Ghostscript安装,以便与Elaphe Python条形码生成器一起使用

时间:2011-11-18 06:02:35

标签: python python-imaging-library ghostscript

我想用Elaphe生成条形码。

运行示例代码时,我的gs失败了。

我正在使用64位Windows机器。我安装了win32的python 2.7.1,因为某些软件包需要win32。所以,我安装了Ghostscript 9.0.4 win 32.我添加了PATH变量的正确路径。

我使用easy_install安装了elaphe,python映像库和python ghostscript 0.41 egg(不确定是否有必要)。

我可以将elaphe和PIL导入python并执行命令而不会出错。每当我尝试将条形码保存为图像时,我都会收到错误。

当我运行这个简单的用法示例时:

>>> from elaphe import barcode
>>> barcode('qrcode',
...         'Hello Barcode Writer In Pure PostScript.',
...         options=dict(version=9, eclevel='M'), 
...         margin=10, data_mode='8bits'))   # Generates PIL.EpsImageFile instance
<PIL.EpsImagePlugin.EpsImageFile instance at ...>
>>> _.show()            # Show the image

我得到IOError: [Errno 32] Broken pipe

当我运行它来检查ghostscript和PIL安装时:

# coding: utf-8                                                                 
from StringIO import StringIO
from PIL.EpsImagePlugin import EpsImageFile

src = """%!PS-Adobe 2.0                                                         
%%BoundingBox: 0 0 144 144                                                      
36 36 72 72 rectfill                                                            
/Courier findfont 12 scalefont setfont                                          
36 120 moveto (text) show                                                       
showpage                                                                        
"""

im = EpsImageFile(StringIO(src))
im.save('foo.png')

我得到IOError: gs failed (status 1)

我尝试为win64安装Ghostscript,但我也遇到了同样的错误。

有关从何处开始排查的任何建议?我可以运行ghostscript可执行文件并弹出一个命令窗口,我添加了env路径变量的正确路径。

感谢。

2 个答案:

答案 0 :(得分:1)

您需要捕获Ghostscript输出以查看错误消息。这通常写入stderr,我不知道这可能会在Python库中发生什么,但你真的需要看到这一点来弄清楚为什么Ghostscript会退出。

您还需要查看它以确定Ghostscript是否被执行。这对我来说听起来不是,但我对“python ghostscript 0.41 egg”一无所知。

答案 1 :(得分:1)

我遇到了同样的问题并通过以下步骤修复了它:

  1. 安装PIL和Ghostscript
  2. 浏览至http://code.google.com/p/elaphe/issues/detail?id=7
  3. 一直到底部并下载附件(EpsImagePlugin.py)
  4. 在C:\ Python26 \ Lib \ site-packages \ PIL下制作当前EpsImagePlugin.py的备份副本。将“C:\ Python26”替换为您的python安装目录ofcourse
  5. 将下载的文件(EpsImagePlugin.py)放在C:\ Python26 \ Lib \ site-packages \ PIL