Treepoem 条码生成器无法找到 ghostscript
Posted
技术标签:
【中文标题】Treepoem 条码生成器无法找到 ghostscript【英文标题】:Treepoem barcode generator unable to find ghostscript 【发布时间】:2017-08-22 23:36:12 【问题描述】:我正在尝试使用 treepoem 在 python 中生成 pdf417 条形码,但 pycharm 不断给我以下错误:
Traceback(最近一次调用最后一次):
文件“C:/Users/./Documents/barcodes.py”,第 175 行,在 image = generate_barcode(barcode_type="pdf417",data=barcode, options=dict(eclevel=5, rows=27, columns=12)) 文件“C:\Users.\AppData\Local\Programs\Python\Python36-32\lib\site-packages\treepoem__init__.py”,第 141 行,在 generate_barcode bbox_lines = _get_bbox(代码) 文件“C:\Users.\AppData\Local\Programs\Python\Python36-32\lib\site-packages\treepoem__init__.py”,第 81 行,在 _get_bbox ghostscript = _get_ghostscript_binary() _get_ghostscript_binary 中的文件“C:\Users.\AppData\Local\Programs\Python\Python36-32\lib\site-packages\treepoem__init__.py”,第 108 行 “无法确定 ghostscript 的路径,是否已安装?” treepoem.TreepoemError: 无法确定 ghostscript 的路径,是否已安装?
我尝试安装ghostcript,使用我在网上找到的.exe 和使用pip install ghostscript(第一次成功完成,现在告诉我要求已满足),但我仍然不断收到此错误。关于如何解决它的任何想法?
【问题讨论】:
【参考方案1】:您在 Windows 上进行安装,Windows 二进制文件的名称与 Linux 二进制文件的名称不同,并且确实有所不同,具体取决于您安装的是 64 位还是 32 位版本。
在 Linux(和 MacOS)上,Ghostscript 二进制文件称为“gs”,在 Windows 上称为“gswin32”或“gswin64”或“gswin32c”或“gswin64c”,具体取决于您需要 32 位还是 64 位版本,以及命令行或窗口可执行文件。
我的猜测是您的脚本正在寻找简单的“gs”并且可能期望路径位于 $PATH 环境变量中,我不清楚它的期望。
您可以通过确保安装路径位于 $PATH 环境变量中并将可执行文件复制到该目录中的“gs.exe”来“修复”此问题。
除此之外,您还需要有人可以告诉您脚本在寻找什么。很可能你可以直接用 grep 解析它。
【讨论】:
【参考方案2】:另一种解决方案是编辑 C:\Users\Windows.UserName\AppData\Local\Programs\Python\Python37\Lib\site-packages\treepoem__init__.py
脚本正在寻找gs.exe,如下图改为gswin32.exe。
然后在 windows 的 PATH 中添加 GhostScriptInstallDir\bin。
def _get_ghostscript_binary():
binary = "gswin32" # changed from 'gs' to 'gswin32'
if sys.platform.startswith("win"):
binary = EpsImagePlugin.gs_windows_binary
if not binary:
raise TreepoemError(
"Cannot determine path to ghostscript, is it installed?"
)
return binary
【讨论】:
以上是关于Treepoem 条码生成器无法找到 ghostscript的主要内容,如果未能解决你的问题,请参考以下文章
什么会导致从 netbarcodewriter 库生成的 Code128 条码无法扫描?