【问题标题】:Issue with path to python/pythonpathpython / pythonpath的路径问题
【发布时间】:2013-10-28 05:30:56
【问题描述】:
我有一个在系统范围内安装了 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?
谢谢!
【问题讨论】:
标签:
python
apache
unix
path
fastcgi
【解决方案1】:
一种选择是使用 python virtualenv 工具创建一个 Python 虚拟环境,您可以在 .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+
在上面的示例中,您可以将--python= 之后的参数替换为安装在用户主目录中的 Python 解释器的路径。
【解决方案2】:
我在我的快速 cgi 调度脚本中通过 env 程序调用了 python 解释器。当我明确地将 2.7 的路径放到脚本的第一行时,它按预期工作。
【解决方案3】:
我已经在 /home/me/.bashrc 中设置了 PYTHONPATH 并且在终端上一切正常,但是当带有 mod_wsgi 的 Apache 启动我的 python 脚本时,它在 sysem 或专用用户下运行,它对我的 .bashrc 一无所知.
对于这种特殊情况,我只是使用 apache config (apache2.conf) 为 apache 设置 python 路径(WSGIPythonPath 选项)。