我想用apache2.2和python 3.6运行django,在wsgy.py和virtuahost中进行更改后仍在运行python 2.6
Apache / 2.2.34(Unix)DAV / 2 mod_wsgi / 3.2配置Python / 2.6.9 - 恢复正常操作
这里是wsgi.py
import os, sys
sys.path.append('/home/app/myapp/sivale')
sys.path.append('/home/app/myvenv/lib/python3.6/site-packages')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
和这里
<VirtualHost *:80>
ServerName nuevo.sivale.mx
Alias /static /home/app/myapp/static
<Directory /home/app/myapp/static>
Allow from all
</Directory>
<Directory /home/app/myapp/myapp>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
WSGIDaemonProcess sivale python-path=/home/app/myapp:/home/app/myvenv/lib/python3.6/site-packages
WSGIProcessGroup sivale
WSGIScriptAlias / /home/app/myapp/myapp/wsgi.py
</VirtualHost>
WSGISocketPrefix /var/run/wsgi
您的配置似乎缺少WSGIPythonHome
。根据Django documentation,如果你没有使用系统的默认python
解释器,你应该明确地添加它。
由于您的默认值是python 2.6(基于您的问题,似乎您保留了它),它就是正在使用的那个。
如果您的日志消息显示为您的mod_wsgi编译为Python 2.6,则不能强制它使用为Python 3.6创建的Python虚拟环境。 mod_wsgi的安装仅适用于为其编译的Python版本。
你需要做的是卸载mod_wsgi系统包并自己从针对Python 3.6编译的源代码安装mod_wsgi。没有办法做到这一点。你不能使用WSGIPythonHome
的python-home
或WSGIDaemonProcess
选项强制它使用不同的Python安装。
在您的情况下也建议从源代码安装mod_wsgi纯粹是因为mod_wsgi 3.2很古老而且不受支持。