【发布时间】: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