Проблема с палочкой и призраком на PyCharm
Итак, я установил 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 Interpreter находится по адресу /usr/local/Cellar/python/2.7.13_1/....
Что мне здесь не хватает?
2 ответа
Вы должны изолировать вашу среду Python от вашей системы Python (и да, ваша установка Homebrew также будет считаться установкой системы Python) с помощью virtualenvwrapper
,
Из того, что я вижу, Python, который использует ваша система, не тот Python, который использует PyCharm. Хотя это можно исправить, перейдя в Настройки> Project Interpreter и выбрав правильный путь для вашего переводчика...
... было бы лучше убедиться, что вы установили все необходимые зависимости, необходимые для вашего проекта, в изолированной виртуальной среде.
Проблема заключалась в том, что, поскольку PyCharm не запускался через Терминал, он не собирал все переменные пути и, следовательно, не смог найти требуемые зависимости (я предполагаю, что GhostScript может быть отсутствующим депо здесь)
Поэтому, когда я запустил PyCharm из терминала, он работал.