我有一个在系统范围内安装了 python 2.5 的 VPS。我将 python 2.7 安装到用户的主目录之一(使用 --prefix)。将它添加到 bashrc 和 bash_profile,将 python 变量导出到 env,现在当我在控制台中键入 python 时,python 2.7 正在运行。但是当我从我的应用程序(使用 FastCGI 的 Django)检查 python 版本时,我仍然看到它使用的是 2.5。在 ps 输出中,我看到为此帐户运行的 python 进程和使用托管特定帐户运行的 apache 进程。如何在不更改系统范围版本的情况下将此特定帐户切换到 2.7?谢谢!
3 回答
One option is to use the python virtualenv
tool to create a Python virtual environment that you can source in your .bashrc
.
mike@tester:~$ virtualenv --python=/usr/bin/python3 $HOME/fcgi_python
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in fcgi_python/bin/python3
Also creating executable in fcgi_python/bin/python
Installing Setuptools..............................................................................................................................................................................................................................done.
Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.
mike@tester:~$ python --version
Python 2.7.5+
mike@tester:~$ source $HOME/fcgi_python/bin/activate
(fcgi_python)mike@tester:~$ python --version
Python 3.3.2+
In the example above you would replace the argument after --python=
with the path to the Python interpreter installed in the user's home directory.
我在我的快速 cgi 调度脚本中通过env程序调用了 python 解释器。当我明确地将 2.7 的路径放到脚本的第一行时,它按预期工作。
我已经在我的 /home/me/.bashrc 中设置了 PYTHONPATH 并且在终端上一切正常,但是当带有 mod_wsgi 的 Apache 启动我的 python 脚本时,它在 sysem 或专用用户下运行,它对我的 .bashrc 一无所知。
对于这种特殊情况,我只是使用 apache config ( apache2.conf ) 为 apache 设置 python 路径 ( WSGIPythonPath选项)。