2017-05-25 176 views
1

我使用的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中,有什麼想法?

回答

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選項繼承環境等