python virtualenv模块导入错误

时间:2017-05-25 21:11:34

标签: python virtualenv

我正在使用virtualenv并已激活它并像这样进行测试:

(myapp) me: python
>>>import redis

然后检查redis可以导入OK:

(myapp) me: sudo ./manage.py database create

这样可以。

但是在运行以下

Traceback (most recent call last):
  File "./manage.py", line 4, in <module>
    from myapp import manager
  File "/home/me/myapp/__init__.py", line 1, in <module>
    import redis
ImportError: No module named redis

我收到以下错误:

apiResult = callAPI()

while apiResult > 5:
    if apiResult == 2:
        #do something        
    apiResult = callAPI()

while apiResult < 5:
    #do something else here
    apiResult = callAPI()

Redis显然是为virtualenv安装的,任何关于可能出错的想法?​​

1 个答案:

答案 0 :(得分:1)

我怀疑sudo是原因。它没有妥善保存virtualenv。

尝试创建一个shell脚本,它首先获取环境,然后执行python。比使用sudo命令运行此shell脚本:

#!/bin/sh

# ensure that working directory is right
source .virtualenvs/myapp/bin/activate
./manage.py database create

并运行它:

$ chmod ugo+x my-startup-shell.sh
$ sudo my-startup-shell.sh

如果可行,请使用sudo进行一些实验,例如可能通过-E选项继承环境等。