Основное решение
Похоже, оригинальная ошибка для этого поста связана с тем, что PIL, возможно, не установлен, или, возможно, ошибка в старой версии PIL.См. http://www.openerp.com/forum/topic18147.html для аналогичной ситуации.Попробуйте установить последнюю версию PIL.
Также см. Appengine - Reportlab (Получить фотографию с модели) в конце принятого решения и комментарии.
Другоепотенциальная проблема в размещенном коде
Хотя это не может быть напрямую связано с заданным вопросом, вы уверены, что im
загружен правильно?Помните, что заданный вами путь относится к каталогу, из которого было запущено приложение, а не к текущему файлу.Используйте __file__
и некоторые хитрости os.path
, чтобы сделать путь относительно chipas.py
, предполагая, что это проблема.Если это не та проблема, с которой вы сейчас сталкиваетесь, то, безусловно, вы скоро столкнетесь с ней.
Чтобы указать путь относительно каталога текущего файла, вы должны использовать что-то вроде:
Код
import os.path
def path_relative_to_file(base_file_path, relative_path):
base_dir = os.path.dirname(os.path.abspath(base_file_path))
return os.path.normpath(os.path.join(base_dir, relative_path))
print(__file__)
print(path_relative_to_file(__file__, '../static/logo.png'))
#Breaks if this code is run from a different directory
print(os.path.abspath('../static/logo.png'))
Вывод
gfortune@gfortune:/var/log$ python /home/gfortune/temp/temp.py
/home/gfortune/temp/temp.py
/home/gfortune/static/logo.png
/var/static/logo.png
Обратите внимание, что путь к '../static' работает, даже если я запустил программу из / var / log.Также обратите внимание, что вслепую используйте ../static с перерывами abspath, если вы запускаете его из / var / log.
Вы можете использовать эту функцию в качестве маленькой вспомогательной функции, передав ее __file__
из рассматриваемого модуля, или вы можете просто использовать логику из нее непосредственно в chipas.py