蟒蛇的virtualenv模块导入错误
问题描述:
我使用的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中,有什么想法?
答
我怀疑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
选项继承环境等