【问题标题】:mportError: PILKit was unable to import the Python Imaging Library. Please confirm it`s installed and available on your current Python pathimportError:PILKit 无法导入 Python 图像库。请确认它已安装并在您当前的 Python 路径上可用
【发布时间】:2015-06-19 21:21:44
【问题描述】:

每个人。我家有些问题。我有 Django 项目。该项目使用 django-imagekit。如果我使用帮助命令运行应用程序:python3 manage.py runserver - 一切正常!但!如果我使用 mod_wsgi 我明白了:

root@twingo:/home/evgen/twingo/build/env/lib/python3.4/site-packages# tail /var/log/apache2/error.log 
[Fri Jun 19 21:13:25.268235 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]     from .registry import register
[Fri Jun 19 21:13:25.268259 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]   File "/home/evgen/twingo/build/env/lib/python3.4/site-packages/imagekit/registry.py", line 3, in <module>
[Fri Jun 19 21:13:25.268388 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]     from .utils import autodiscover, call_strategy_method
[Fri Jun 19 21:13:25.268414 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]   File "/home/evgen/twingo/build/env/lib/python3.4/site-packages/imagekit/utils.py", line 14, in <module>
[Fri Jun 19 21:13:25.268550 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]     from pilkit.utils import *
[Fri Jun 19 21:13:25.268574 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]   File "/home/evgen/twingo/build/env/lib/python3.4/site-packages/pilkit/utils.py", line 6, in <module>
[Fri Jun 19 21:13:25.268752 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]     from .lib import Image, ImageFile, StringIO, string_types
[Fri Jun 19 21:13:25.268778 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]   File "/home/evgen/twingo/build/env/lib/python3.4/site-packages/pilkit/lib.py", line 19, in <module>
[Fri Jun 19 21:13:25.268859 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535]     raise ImportError('PILKit was unable to import the Python Imaging Library. Please confirm it`s installed and available on your current Python path.')
[Fri Jun 19 21:13:25.268898 2015] [wsgi:error] [pid 20907] [remote 91.238.231.242:65535] ImportError: PILKit was unable to import the Python Imaging Library. Please confirm it`s installed and available on your current Python path.
root@twingo:/home/evgen/twingo/build/env/lib/python3.4/site-packages# 

这里是我的 apache 配置:

<VirtualHost *:80>
        WSGIDaemonProcess twingo python-path=/home/evgen/twingo/build/:/home/evgen/twingo/build/env/lib/python3.4/site-packages/
        WSGIProcessGroup twingo
        WSGIScriptAlias / /home/evgen/twingo/build/wsgi.py
        Alias /robots.txt /home/evgen/twingo/build/robots.txt
        Alias /favicon.ico /home/evgen/twingo/build/static/images/favicon.ico

    Alias /media/ /home/evgen/twingo/build/media/
    Alias /static/ /home/evgen/twingo/build/static/

    <Directory /home/evgen/twingo/build/static>
            Require all granted
    </Directory>

    <Directory /home/evgen/twingo/build/media>
            Require all granted
    </Directory>


    <Directory /home/evgen/twingo/build/>
            <Files wsgi.py>
                   Require all granted
            </Files>
    </Directory>

这里列出项目目录:

root@twingo:/home/evgen/twingo/build# ls
authapp  env  feedback  manage.py  service  static  templates  travels  twingo  users  wsgi.py

这里列出站点包目录:

root@twingo:/home/evgen/twingo/build/env/lib/python3.4/site-packages# ls
Django-1.8.2.dist-info       django_appconf-1.0.1.dist-info    password_reset        six-1.9.0.dist-info
PIL              django_compress-1.0.1-py3.4.egg-info  pilkit            six.py
Pillow-2.8.2-py3.4.egg-info  django_imagekit-3.2.6-py3.4.egg-info  pilkit-1.1.12-py3.4.egg-info  tests
__pycache__          django_password_reset-0.7.dist-info   pip               utils
_markerlib           easy_install.py               pip-1.5.6.dist-info       utils-0.8.0-py3.4.egg-info
appconf              image                 pkg_resources
compress             image-1.4.0-py3.4.egg-info        setuptools
django               imagekit                  setuptools-17.0.dist-info

我做错了什么?

【问题讨论】:

  • 首先,您的 mod_wsgi 是否实际上是为 Python 3.4 编译的?见code.google.com/p/modwsgi/wiki/…code.google.com/p/modwsgi/wiki/…
  • 我只是安装 libapache2-mod-wsgi
  • 通常是 Python 2.7 版本。对于 Debian/Ubuntu 系统,您可能需要 libapache2-mod-wsgi-py3。您仍然想根据链接检查是 Python 3.3 还是 3.4。如果您使用的不是系统 Python 3.4,而是您自己编译的 Python 安装,那么系统可能是 3.3。如果使用您自己的 Python 安装,您应该自己安装 mod_wsgi,根据您的特定 Python 安装编译。
  • mod_wsgi 没有问题。因为如果我不使用 imagekit 所有的作品。
  • 简短的回答是,您不能将使用一个 Python 版本构建的 Python 虚拟环境与为不同 Python 版本编译的 mod_wsgi 混合使用。 Python 虚拟环境中的任何 C 扩展模块都将不兼容。

标签: python django debian pillow


【解决方案1】:

我通过安装 Pillow 解决了这个问题

pip install Pillow

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2022-01-07
    • 2021-04-05
    相关资源
    最近更新 更多