我的系统(ubuntu)有 python 2.6.5 版本(全局安装在 /usr/bin/ 中)。
我想使用 python 2.7.3 。
为此,我尝试使用这个答案创建一个 virtualenv是否可以将另一个版本的 Python 安装到 Virtualenv?(没有从答案中进行任何模拟链接)。我成功了,当我激活 env 并使用“python manage.py shell”时效果很好。
问题是:我们使用 uwsgi 来运行服务器。到目前为止,我们直接使用系统范围的 python(2.6.5) 。因为我在 virtualenv 中新安装了所有东西,所以我添加了选项
'-H /path/to/virtualenv'
在运行 uwsgi 服务器时。
执行“import os”行时出现错误“no module named 'os'”。(从错误日志中发现错误)
所以,我添加了 import sys; 在命令 'import os' 之前打印 sys.path 命令。然后,当它打印路径时,它具有以下内容:
/home/name/venv/bin/python/lib/python2.6/ #(one of the items in the array sys.path)
但是,当我查看我的 venv 文件夹时,“lib”文件夹中没有像 python2.6 这样的东西。,我的 venv 的 lib 文件夹只包含 'python2.7' 。
我的要求是,uwsgi 应该使用 python 2.7(of venv),而不是 2.6(global)。
另外,在我的 sh 文件中,我使用了命令“which python”,这表明它使用的是全局版本。所以,我必须首先告诉 shell 文件使用 virtualenv 中的 python,而不是默认的全局文件。我尝试了“source /path/to/activate”,但说找不到命令。