Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python virtualenv模块导入错误_Python_Virtualenv - Fatal编程技术网

python 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

我正在使用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
回溯(最近一次呼叫最后一次):
文件“/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
选项来继承环境等等