2017-05-25 136 views
1

我使用的virtualenv并激活它,测试它像这样:蟒蛇的virtualenv模块导入错误

source .virtualenvs/myapp/bin/activate 
pip freeze 

(myapp) me: redis==2.05 

然后检查Redis的可以导入OK:

(myapp) me: python 
>>>import redis 

该工程确定。

然而上运行以下

(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 

Redis的显然是安装了virtualenv中,有什么想法?

回答

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选项继承环境等