web-dev-qa-db-de.com

Installierte Virtualenv und Aktivierung von Virtualenv funktionieren nicht

Ich habe mein Django-Projekt aus dem Github-Konto geklont und das virtualenv mit dem bekannten Befehl source nameofenv/bin/activate.__ aktiviert. Und wenn ich python manage.py runserver ausführe 

Es gibt einen Fehler, der sagt:

ImportError: Django konnte nicht importiert werden. Sind Sie sicher, dass es in Ihrer Umgebungsvariablen PYTHONPATH installiert und verfügbar ist? Haben Sie vergessen, eine virtuelle Umgebung zu aktivieren?

7
abhi_bond

Ich dachte, dass jede Abhängigkeit, die ich brauche, in virtualenv vorhanden sein könnte.

Nun, nein. Standardmäßig ist eine neu erstellte Virtualenv leer, d. H. Ohne Bibliothek von Drittanbietern. (Optional können Sie einer virtuellen Domäne den Zugriff auf systemweit installierte Bibliotheken gestatten, dies ist jedoch eine andere Geschichte.)

Nach der Erstellung der Virtualenv müssen Sie die von Ihnen benötigten Abhängigkeiten installieren.

(Wie können virtuelle Benutzer wissen, welche Abhängigkeiten Sie benötigen?)

Die Prozedur besteht darin, die virtualenv zu installieren, sie zu aktivieren und anschließend die für das Projekt erforderlichen Bibliotheken zu installieren (in Ihrem Fall Django und möglicherweise andere).

Wenn Ihr Projekt über eine Requirements.txt verfügt, können Sie mit dem Befehl jede erforderliche Abhängigkeit installieren:

pip install -r requirements.txt

Wenn Ihr Projekt eine setup.py hat, können Sie es auch ausführen 

pip install -e path/to/your/project/clone/.

um das Projekt in der Virtualenv zu installieren. Dies sollte die Abhängigkeiten installieren.

Wenn die einzige Abhängigkeit Django ist, können Sie natürlich nur tippen

pip install Django
14
Jérôme

auf Ubuntu-Version

#install python pip 
Sudo apt-get install python-pip
#install python virtualenv
Sudo apt-get install python-virtualenv
# create virtual env 
virtualenv  myenv
#activate the virtualenv
. myenv/bin/activate
#install Django inside virtualenv
pip install Django
#create a new Django project
Django-admin.py startproject mysite
#enter to the folder of the new Django project
cd mysite
#run the Django project
python manage.py runserver 
10

Ich vermute, Sie laden auch die virtuelle Umgebung von Ihrem anderen PC hoch. Und Sie hoffen, dass nur das Aktivieren funktioniert, bzz.

Es wird nicht empfohlen, die Virtualenv-Dateien in Ihr Git-Repository hochzuladen, da @Alain der Meinung ist, dass es eine bewährte Methode ist, eine requirements.txt-Datei mit den Projektabhängigkeiten zu haben. Sie können pip freeze > requirements.txt (bei aktivierter Umgebung) verwenden, um die Projektanforderungsdatei zu erstellen. 

Wenn Sie das Repository von einem anderen Computer klonen, müssen Sie eine neue Virtualenv erstellen, indem Sie den folgenden Befehl ausgeben:

virtualenv nameofenv

dann aktivieren Sie es:

source nameofenv/bin/activate

verwenden Sie schließlich die Anforderungsdatei, um die Anforderungen für Ihr Projekt zu installieren. Verwenden Sie dazu:

pip install -r requirements.txt
2
slackmart

Wenn auf Ihrem Rechner mehrere python vorhanden sind, z. B. python2.7, python3.4, python3.6, ist es wichtig herauszufinden, auf welche Version sich die python wirklich bezieht, und darüber, auf welche Version pip verweist.

Das gleiche Problem kam mir nach der Installation von let's encrypt bei der Ausführung des folgenden Befehls in den Weg.

(python3 manage.py runserver 0:8000 &)

Ich überprüfte die Version von python und stellte fest, dass python3, python3.4, python3.6, python3.4m alle verfügbar waren.

Ich änderte einfach python3 in python3.6 und löste das Problem.

(python3.6 manage.py runserver 0:8000 &)

Dies ist wahrscheinlich ein Versionsunterschied, wenn es längere Zeit in Ordnung ist und plötzlich abstürzt.

1
W.Perrin

Ich hatte Django 2 über pip3 install Django installiert, aber ich habe python manage.py runserver anstelle von python3 manage.py runserver ausgeführt. Django 2 funktioniert nur mit Python 3+.

0
cph2117