我对虚拟环境和mod_wsgi配置有问题。
我的apache配置中有这个:

WSGIDaemonProcess myapp python-path=/mnt/myapp/current:/mnt/env/lib/python3.4/site-packages

很明显我用的是蟒蛇3.4。
但是如果我在我的虚拟环境中,如果我执行以下操作,我将得到python版本是3.4.3的信息:
(env)root@Python:/mnt/env/bin# python
Python 3.4.3 (default, Oct 14 2015, 20:28:29)

但是如果我列出bin文件夹中的所有文件,我可以看到python3.4已安装。
lrwxrwxrwx 1 root     root           9 Mar 24 10:50 python -> python3.4
lrwxrwxrwx 1 root     root           9 Mar 24 10:50 python3 -> python3.4
-rwxr-xr-x 1 root     root     3709944 Mar 24 10:50 python3.4

在我的apache日志中,我收到以下警告:
[Fri Jul 08 10:32:52.394080 2016] [:warn] [pid 29613] mod_wsgi: Compiled for Python/3.4.0.
[Fri Jul 08 10:32:52.394119 2016] [:warn] [pid 29613] mod_wsgi: Runtime using Python/3.4.3.

这也是我的apache日志:
Fri Jul 08 10:53:01.266961 2016] [:error] [pid 29619] Traceback (most recent call last):
[Fri Jul 08 10:53:01.267014 2016] [:error] [pid 29619]   File "/usr/lib/python3.4/threading.py", line 1288, in _shutdown
[Fri Jul 08 10:53:01.268311 2016] [:error] [pid 29619]     assert tlock is not None
[Fri Jul 08 10:53:01.268356 2016] [:error] [pid 29619] AssertionError:
[Fri Jul 08 10:53:01.259885 2016] [:error] [pid 29621] Exception ignored in: <module 'threading' from '/usr/lib/python3.4/threading.py'>

我不确定日志中的最后一条消息是否连接到前一条消息,但我假设它是。
有人能建议我如何在我的虚拟环境中安装python版本3.4.3之后我将更改mod_wsgi配置。
谢谢!

最佳答案

看起来您使用的是编译版的mod_wsgi,它在您第一次构建时是用Python编译的,可能是Python 3.4.0看起来这次您需要对Python 3.4.3重新编译mod_wsgi,如下所示:

wget -q "https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz"
tar -xzf '4.4.21.tar.gz'
cd ./mod_wsgi-4.4.21
./configure --with-python=/path/to/your/python343/install
make
make install

祝你好运!

关于python - 虚拟环境错误的python版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38269830/

10-12 14:19
查看更多