Apache 2.2,Django,使用Python 3.5

问题描述 投票:1回答:2

我想用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
python django apache mod-wsgi
2个回答
0
投票

您的配置似乎缺少WSGIPythonHome。根据Django documentation,如果你没有使用系统的默认python解释器,你应该明确地添加它。

由于您的默认值是python 2.6(基于您的问题,似乎您保留了它),它就是正在使用的那个。


0
投票

如果您的日志消息显示为您的mod_wsgi编译为Python 2.6,则不能强制它使用为Python 3.6创建的Python虚拟环境。 mod_wsgi的安装仅适用于为其编译的Python版本。

你需要做的是卸载mod_wsgi系统包并自己从针对Python 3.6编译的源代码安装mod_wsgi。没有办法做到这一点。你不能使用WSGIPythonHomepython-homeWSGIDaemonProcess选项强制它使用不同的Python安装。

在您的情况下也建议从源代码安装mod_wsgi纯粹是因为mod_wsgi 3.2很古老而且不受支持。

© www.soinside.com 2019 - 2024. All rights reserved.