在mod_wsgi上用apache2运行django python 3.4

您好,我得到下面的错误时去Ubuntu的服务器14.10网站上的url与Django的mod_wsgi和python运行Apache 2。

我的django应用程序使用python 3.4,但它似乎是默认的python 2.7,我无法从pycrypto从PIL和AES导入图像。

ImportError at /
无法导入名称_imaging
请求方法:GET
请求url:
Django版本:1.7.3
exceptiontypes:ImportError
例外价值:
无法导入名称_imaging
例外位置:/usr/local/lib/python3.4/dist-packages/PIL/Image.py in,line 63
Python可执行文件:/ usr / bin / python
Python版本:2.7.6
Pythonpath:
[ '/无功/networking/布拉布拉',
'/usr/local/lib/python3.4/dist-packages',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'在/ var / WWW /布拉布拉',
'/usr/local/lib/python3.4/dist-packages']

我相信mod_wsgi是针对特定版本的python编译的,所以你需要一个py3.4版本的mod_wsgi。 你可能可以从你的os的软件包库中获得一个,或者你可以建立一个没有太多的戏剧。 从内存中,你需要gcc和python-dev包(python3-dev?)来构建。

好的,快速谷歌,为Ubuntu 14.10: sudo apt-get install libapache2-mod-wsgi-py3应该安装一个py3版本的mod_wsgi(可能要删除现有的py2版本)。

在读取wsgi.py脚本之前,已经加载了python解释器,因此添加一个shebang行将无济于事。

从我在这里看到你的应用程序正在使用py2解释器与py3编译模块,这是不行的。

我想到的一个简单可能的解决方案是将manage.py的第一行添加或更改为#!/usr/bin/python3 。 这将告诉脚本被py3解释。

下一个猜测列表将错误配置* .wsgi文件或apache配置,无论你正在使用。

多谢你们,

我今天早上自己修复了这个问题,使用指向python3.4的.configure来运行mod_wsgi的make install。

我认为你是对的亚当。