python ghostscript:RuntimeError:找不到Ghostscript库(libgs)

Posted

技术标签:

【中文标题】python ghostscript:RuntimeError:找不到Ghostscript库(libgs)【英文标题】:python ghostscript: RuntimeError: Can not find Ghostscript library (libgs) 【发布时间】:2011-07-27 17:52:10 【问题描述】:

尝试运行 hello-world 示例时

import sys
import ghostscript

args = [
    "ps2pdf", # actual value doesn't matter
    "-dNOPAUSE", "-dBATCH", "-dSAFER",
    "-sDEVICE=pdfwrite",
    "-sOutputFile=" + sys.argv[1],
    "-c", ".setpdfwrite",
    "-f",  sys.argv[2]
    ]

ghostscript.Ghostscript(*args)

出现错误:

 File "/Users/ddd/sss/ddd/eee.py", line 2, in <module>
    import ghostscript
  File "build/bdist.macosx-10.6-universal/egg/ghostscript/__init__.py", line 33, in <module>

  File "build/bdist.macosx-10.6-universal/egg/ghostscript/_gsprint.py", line 290, in <module>
RuntimeError: Can not find Ghostscript library (libgs)

这个 libgs 库是什么?如何获得它?

顺便说一句,我在 mac 上

【问题讨论】:

【参考方案1】:

对于使用 M1 mac 的新用户,ghostscript 可能会显示缺少 libgs 文件错误,并且该文件将在 usr/local/lib 不可用

可以按照以下步骤以相同的顺序解决该问题:

brew install ghostscript conda install ghostscript,从 conda-forge 安装基于 arm_64 的库 如果 conda 引发通道错误,请尝试使用 conda install -c conda-forge ghostscript pip install ghostscript

注意:

    libgs.dylib 文件可以在 ghostscript 的 home brew 安装中找到 更改_gsprint.py 中的地址将引发错误,因为 brew 安装的版本将基于 arm_64 而 pip 安装的版本将基于 OS_X86 除非运行 pip install,否则 Python 无法识别 conda install 中的 ghostscript 模块,因此这是必不可少的步骤

【讨论】:

【参考方案2】:

对我来说,我只是安装了 python 部分:

pip install ghostscript

但不是 C 部分:

brew install ghostscript

也许这些 DMG 也可以使用 - 但我没有走这条路: http://pages.uoregon.edu/koch/

【讨论】:

【参考方案3】:

您应该看看Ghostscript's official download sitetheir documentation

如果这不能让您开始,您也可以直接在 IRC 服务器 irc.freenode.net 上名为 #ghostscript 的在线聊天频道中询问 GS 开发人员。他们是一群非常友好和乐于助人的人。

【讨论】:

【参考方案4】:

要解决这个问题,你需要修改site-packages中的ghostscript模块路径。

在 _gsprint.py 中修改成这样:

libgs = ctypes.util.find_library('/opt/local/lib/libgs')

它会定位您的 libgs 文件。

【讨论】:

【参考方案5】:

对于 Mac 用户,请在您的 /usr/local/lib/ 目录中找到 libgs.x.xx.dylib 的版本。

然后运行这个命令,

ln -s /usr/local/lib/libgs.x.xx.dylib /usr/local/lib/libgs.so

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/' >> ~/.zshrc

.zshrc 替换为您的 shell 脚本类型。

[将 x.xx 替换为您目录中的版本]

【讨论】:

Mac 用户也可以尝试将libgs = ctypes.util.find_library("gs") 行替换为import distutils.spawn libgs = distutils.spawn.find_executable("gs") Link - github.com/atlanhq/camelot/issues/282#issuecomment-604465648

以上是关于python ghostscript:RuntimeError:找不到Ghostscript库(libgs)的主要内容,如果未能解决你的问题,请参考以下文章

Python Camelot / Ghostscript“错误的架构”错误

Ghostscript 执行:PHP 与 Python

如何在 Windows 中将 ghostscript DLL 库提供给 python?

python - 如何从子进程中运行的ghostscript命令中捕获错误

使用子进程在 Python 中运行 ghostscript 不起作用

如何在 Python 中更改 Ghostscript 输出文件(在打印机后台处理程序中)