gpt4 book ai didi

python - 无法使用 virtualenv 运行 Apache2

转载 作者:行者123 更新时间:2023-12-01 02:02:14 24 4
gpt4 key购买 nike

我正在制作一个基于Django的网站,在服务器上安装了Python 3.5,但我的项目需要Python 3.6。我决定使用 virtualenv。我成功安装了所需版本的 Python,但无法使用 virtualenv 使其与 Apatche2 一起使用。

网站只能在Python 2.7上运行,否则什么也不会发生,页面加载很长时间没有任何错误。

这是我尝试在 Python 3.6 上运行的 VirtualHost 配置。

<VirtualHost *:443>
ServerName <site_adress>:443
ServerAdmin admin@<site_adress>

DocumentRoot /var/www/html/MMServer

ErrorLog /var/www/logs/error.log
CustomLog /var/www/logs/custom.log combined

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mm.cert
SSLCertificateKeyFile /etc/apache2/ssl/mm.key

Alias /static/ /var/www/html/MMServer/static/

<Directory /var/www/html/MMServer/static>
Require all granted
</Directory>

WSGIDaemonProcess MMServer python-path=/var/www/html/MMServer python-home=/var/www/html/venv
WSGIProcessGroup MMServer
WSGIScriptAlias / /var/www/html/MMServer/mm_server/wsgi.py

<Directory /var/www/html/MMServer/mm_server>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

</VirtualHost>

下面是我的 wsgi.py 文件:

import os
import sys

def application(environ, start_response):
start_response('200 OK',[('Content-type','text/html')])
return [sys.version]

通过这种方式我只能得到一件事(当 WSGIDaemonProcessWSGIProcessGroup 被删除时)是:

2.7.13 (default, Nov 24 2017, 17:33:09) [GCC 6.3.0 20170516]

编辑1:

有可能我丢失了软件包,因为我重新安装了 python 3.5,需要哪些软件包才能工作?

解决方案:

我做了两件事,我不确定什么对我有帮助,但首先我禁用了一个 mod (a2dismod wsgi) 并删除了一个包 libapache2-mod-wsgi.

选项 1:

apt-get install libapache2-mod-wsgi-py3

选项 2:

我从源安装了mod-wsgi:
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.6.3.tar.gz
tar -xf 4.6.3.tar.gz
./configure --with-python=/usr/local/bin/python3.6
制作
进行安装
现在一切都很完美。
感谢@Graham Dumpleton,您的回答很有帮助。

最佳答案

mod_wsgi 模块是链接到 Python 库的 C 代码。因此,为其编译的 Python 版本嵌入在模块中。它不只是执行 python 程序。这意味着它必须针对您想要使用的 Python 版本进行编译。您无法通过虚拟环境强制它使用不同的 Python 版本。关于在虚拟环境中使用 mod_wsgi 的文档中对此进行了说明。

简而言之,您需要卸载 mod_wsgi 模块(可能是操作系统打包的模块),然后从源代码中自行安装 mod_wsgi,针对您要使用的 Python 版本进行编译。最简单的方法是使用 pip install 方法。

关于python - 无法使用 virtualenv 运行 Apache2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49495403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com