我想用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路径变量的正确路径。
感谢。
答案 0 :(得分:1)
您需要捕获Ghostscript输出以查看错误消息。这通常写入stderr,我不知道这可能会在Python库中发生什么,但你真的需要看到这一点来弄清楚为什么Ghostscript会退出。
您还需要查看它以确定Ghostscript是否被执行。这对我来说听起来不是,但我对“python ghostscript 0.41 egg”一无所知。
答案 1 :(得分:1)
我遇到了同样的问题并通过以下步骤修复了它: