虚拟环境错误的python版本

时间:2016-07-08 15:01:27

标签: python apache mod-wsgi

我遇到虚拟环境和mod_wsgi配置问题。

我的apache配置中有这个:

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

明确指出我使用的是python3.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配置。

谢谢!

1 个答案:

答案 0 :(得分:3)

看起来你正在使用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
祝你好运!