2017-05-25 3 views
1

ich virtualenv bin mit und habe es aktiviert und getestet es wie folgt aus:Python virtualenv Modul Importfehler

source .virtualenvs/myapp/bin/activate 
pip freeze 

(myapp) me: redis==2.05 

Dann Überprüfung redis können importieren OK:

(myapp) me: python 
>>>import redis 

Das OK arbeitet.

jedoch auf den Betrieb der folgenden

(myapp) me: sudo ./manage.py database create 

bekomme ich folgende Fehlermeldung:

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 eindeutig für die virtualenv installiert ist, keine Gedanken darüber, was schief gehen könnte?

Antwort

1

Ich vermute, dass sudo der Grund ist. Es bewahrt nicht richtig den virtualenv.

Versuchen Sie einfach, ein Shell-Skript zu erstellen, das zuerst die Umgebung und dann Python ausführt. Als dieses Shell-Skript-Befehl mit dem sudo ausführen:

#!/bin/sh 

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

und führen Sie es:

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

Wenn das funktioniert, mit sudo einige Experimente tun wie möglicherweise das Bestehen der -E Option, um die Umwelt usw.

erben
Verwandte Themen