uwsgi - 不使用virtualenv中的python2.7.3,而是使用2.6来自venv,即使2.6仅在全局安装

时间:2012-11-14 17:06:28

标签: python django uwsgi

我的系统(ubuntu)有python 2.6.5版本(全局安装在/ usr / bin /中)。
我想使用python 2.7.3 为此,我尝试使用这个答案创建一个virtualenv Is it possible to install another version of Python to Virtualenv?(没有从答案中做任何simlinking)。我成功了,当我激活env并使用'python manage.py shell'时,它运行得很好。

问题是:  我们使用uwsgi来运行服务器。直到现在,我们直接使用系统范围的python(2.6.5)。由于我已经在virtualenv中新安装了所有内容,我添加了选项

'-H /path/to/virtualenv' 

运行uwsgi服务器时。

执行“import os”行时,我收到错误“没有名为'os'的模块”。 (从错误日志中发现错误)

所以,我添加了import sys;命令'import os'之前的print 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(全局)。

另外,在我的sh文件中,我使用了命令'which python',它显示它正在使用全局版本。所以,我必须先告诉shell文件使用virtualenv中的python,而不是默认的全局。我试过'source / path / to / activate'但是找不到命令。

1 个答案:

答案 0 :(得分:9)

  1. 激活virtualenv
  2. 安装uwsgi pip install uwsgi
  3. 从virtualenv运行uwsgi