2017-05-25 10 views
1
私はvirtualenvのを使用していますし、それを活性化し、このようにそれをテストしている

のpython virtualenvのモジュールインポートエラー

(myapp) me: python 
>>>import redis 

これはOK作品:

source .virtualenvs/myapp/bin/activate 
pip freeze 

(myapp) me: redis==2.05 

が次にチェック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 

Redisのは明らかに、virtualenvのために間違って行くことができるもの上の任意の考えをインストールされていますか?

答えて

1

私はsudoがその理由であると考えます。 virtualenvを適切に保存しません。

ちょうど環境をソースし、pythonを実行するシェルスクリプトを作成しようとします。

#!/bin/sh 

# ensure that working directory is right 
source .virtualenvs/myapp/bin/activate 
./manage.py database create 

し、それを実行します:sudoコマンドでこのシェルスクリプトを実行するよりも可能性などの環境を継承する-Eオプションを渡すようsudoでいくつかの実験を行い、

$ chmod ugo+x my-startup-shell.sh 
$ sudo my-startup-shell.sh 

それがはたらく場合

関連する問題