我正在使用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 redisRedis显然是为virtualenv安装的,有什么可能会出错的想法吗?
发布于 2017-05-25 21:30:17
我怀疑sudo是原因。它没有正确地保存虚拟环境。
只需尝试创建一个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选项来继承环境等等。
https://stackoverflow.com/questions/44189888
复制相似问题