我正在使用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安装的,任何关于可能出错的想法?
答案 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
选项继承环境等。