python virtualenv模块导入错误
我正在使用virtualenv,并已将其激活并进行如下测试:python virtualenv模块导入错误,python,virtualenv,Python,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 我得到以下错误: Tracebac
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
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第4行,在
从myapp导入管理器
文件“/home/me/myapp/_init__uuu.py”,第1行,在
导入redis
ImportError:没有名为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
选项来继承环境等等