【问题标题】:Wand and ghostscript issue on PyCharmPyCharm 上的魔杖和 ghostscript 问题
【发布时间】:2017-09-10 14:13:20
【问题描述】:

所以我已经安装了 Wand、Ghostscript、ImageMagick。我正在尝试将 PDF 转换为图像。我的代码如下。

代码:

from wand.image import Image
image_pdf = Image(filename="/<fullpath>/xyz.pdf", resolution=500)
image_jpeg = image_pdf.convert('jpeg')
print (len(image_jpeg.sequence))

当我通过终端运行代码时(我的意思是打开 python 终端并将代码粘贴到那里),它可以工作。但是相同的代码在 PyCharm 中失败了。

错误:

File "/usr/local/lib/python2.7/site-packages/wand/resource.py", line 222, in raise_exception
raise e
wand.exceptions.DelegateError: FailedToExecuteCommand `'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r500x500'  '-sOutputFile=/var/folders/61/7q0vknr92mndbbgzqvsk3xl4r4yw3f/T/magick-24738xypZ5LDqNaTJ%d' '-f/var/folders/61/7q0vknr92mndbbgzqvsk3xl4r4yw3f/T/magick-24738Tr70PW391Vdt' '-f/var/folders/61/7q0vknr92mndbbgzqvsk3xl4r4yw3f/T/magick-24738wI4q1Lv6Aich'' (1) @ error/pdf.c/InvokePDFDelegate/292
Exception TypeError: TypeError("object of type 'NoneType' has no len()",) in <bound method Image.__del__ of <wand.image.Image: (empty)>> ignored

我在终端检查了python版本 which python2 我得到/usr/local/bin/python2

我的 PyCharm pythton 解释器位于/usr/local/Cellar/python/2.7.13_1/....

我在这里错过了什么?

【问题讨论】:

  • 看起来image_jpegNone,这意味着这就是Image(filename="/&lt;fullpath&gt;/xyz.pdf", resolution=500) 调用返回的内容——所以你需要弄清楚为什么会这样。看看它是否在 PyCharm 之外工作。
  • @martineau 问题是由于 PyCharm 中的路径变量不完整。
  • 很高兴您至少找到了一种解决方法。我在这里看到了很多关于在 PyCharm 中不起作用但在 PyCharm 之外起作用的问题。

标签: python pycharm python-2.x ghostscript wand


【解决方案1】:

您应该使用virtualenvwrapper 将您的 Python 环境与系统 Python 隔离(是的,您的 Homebrew 安装也将被视为系统 Python 安装)。

据我所见,您的系统使用的 Python 与 PyCharm 使用的 Python 不同。虽然可以通过转到 Settings > Project Interpreter 并为您的解释器选择正确的路径来解决这个问题...

...最好确保在隔离的虚拟环境中安装项目所需的所有必要依赖项。

【讨论】:

  • @Makoto - 我有一个问题。对我来说同样的问题 - 在控制台上工作但不在 pycharm 上工作。我将pycharm的路径设置为隔离环境中的python解释器,如下所示:/Volumes/WORK/Projects/BazeanAnalytics/web-app-baz-analytics/API/data-api/venv,但还没有工作。
【解决方案2】:

问题在于,由于 PyCharm 没有通过终端启动,它没有获取所有路径变量,因此无法找到所需的依赖项(我假设 GhostScript 可能是这里缺少的 dep)

因此,当我从终端启动 PyCharm 时,它起作用了。

【讨论】:

  • 我认为你可能是真的,但我应该总是从控制台启动 pycharm 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 2017-12-24
  • 2015-07-07
  • 1970-01-01
  • 2023-01-24
  • 2013-06-23
相关资源
最近更新 更多