2013-09-03 6 views
11

Ich versuche, eine Entwicklungsumgebung auf meinem neuen dev-Maschine zu Hause einzurichten. Ich habe gerade Ubuntu installiert und jetzt versuche ich ein Remote-Repo von unserem Webserver zu klonen und seine Abhängigkeiten zu installieren, damit ich mit der Arbeit beginnen kann.Pip installiert keine Pakete zu aktivierten virtualenv, ignoriert Anforderungen.txt

Bisher habe ich manuell virtualenv und virtualenvwrapper von pypi installiert und meine bash.rc entsprechend bearbeitet, um meine virtualenvs zu beziehen, wenn ich mein Terminal starte. Ich klonte dann mein Repo zu ~/projects/project-name/websitename.com. Dann habe ich virtualenvwrapper bis mkvirtualenv env-name von ~/projects/project-name/websitename.com verwendet. Dies spiegelt genau die file-structure/setup des Web-Servers wieder, von dem ich klicke. So weit, ist es gut.

Ich loggte mich in den Dev-Server und aktivieren Sie die virtualenv dort und verwenden Sie pip freeze -l > req.txt, um eine Abhängigkeiten Liste und scp zu meinem lokalen Rechner zu rendern. Ich aktiviere die virtualenv auf meinem lokalen Rechner, navigiere zum ~/projects/project-name/websitename.com und führe pip install -r path-to-req.txt aus und es läuft durch alle Abhängigkeiten, als ob nichts falsch wäre. Jedoch, wenn ich versuche, manage.py syncdb ich bekomme einen Fehler über nicht finden Core Django-Pakete. Was zum Teufel? Also ich denke, irgendwie Django konnte nicht installiert werden, ich run pip install Django==1.5.1 und es wird erfolgreich abgeschlossen. Ich muss meine Seite erneut einrichten und einen weiteren Fehler über kein Modul namens django_extensions erhalten. Okay, was zur Hölle damit, ich habe gerade alle diese Pakete mit Pip installiert ?!

Also ich pip freeze -l > test.txt und cat test.txt, was ist das? Django==1.5.1, das eine Paket, das ich gerade manuell installiert habe. Warum installiert Pip meine Abhängigkeiten nicht von meiner angegebenen Liste in mein virtualenv? Was vermassele ich hier?

-EDIT -------------

Welche pip mir den Weg gibt in meinem virtualenv

Ich habe nur 1 virtualenv und es aktiviert

+3

Alles, was Sie tun, scheint in Ordnung zu sein, versuchen Sie, mit 'welcher Pip 'zu debuggen. – elyase

+0

versuchen Sie auch 'find ~/.virtualenvs -type d -iname" anypackage "' zu sehen, ob Ihre erforderlichen Pakete installiert sind oder nicht. Außerdem empfehle ich die Verwendung von 'https: // gist.github.com/insin/1425703', die eine nette Eingabeaufforderung über aktivierte virtualenv in Ihrer bash geben wird. – sagarchalise

+0

läuft Ihr Befehl, die einzigen Pakete in meinem virtualenv ist die, die ich manuell aufgefordert, pip, um Django zu installieren, alle anderen von pip in der Anforderungsdatei verarbeitet wurden ignoriert. Irgendwie bekomme ich auch eine nette Ansage, welche Virtualenv ich aktiviert habe. – leotemp

Antwort

6
pip

Meine übliche Workflow ist

pip freeze > someFile.txt 

und dann mit

pip install -r someFile.txt 
installieren

Also ich bin mir sicher, dass dies gut funktionieren sollte. Leider kann ich Ihnen nicht wirklich etwas sagen, außer sicher, zu überprüfen, ob

  1. Sie wirklich in der virtualenv sind, dass Sie denken, Sie sind in. Achten Sie darauf, um es zu aktivieren

    workon yourVirtualEnvName 
    

    laufen nur falls das wichtig ist.

  2. Vergewissern Sie sich, dass Pip in Ihrem virtualenv ist.

    which pip 
    

    gibt mir

    /path/to/home/.virtualenvs/myVirtEnv/bin/pip 
    

Leider kann ich dir nicht geben, eine konkrete Antwort. Ich muss das halbwegs regelmäßig machen, und ich hatte nie ein Problem damit, Abhängigkeiten zu überspringen. Viel Glück!

+2

Huh, yeah, ich laufe pip install -r someFile.txt und ich gucke sogar wie es heißt es wird heruntergeladen und installiert, aber dann existieren die Pakete nicht. Zum Beispiel heißt es: Herunterladen/Entpacken django-extensions == 1.1.1 (von -r req.txt (Zeile 14)) Herunterladen django-Erweiterungen-1.1.1.tar.gz (149kB): 149kB heruntergeladen Egi_info für das Paket django-extensions wird ausgeführt . Aber django-extensions scheinen nicht installiert zu sein und verursachen trotzdem einen Fehler beim Aufruf. Es erscheint auch nicht, wenn ich einfrieren. – leotemp

+5

hast du eine Lösung dafür eingereicht? Ich habe genau das gleiche Problem. – ajay

3

Vor einiger Zeit mit einigen Variationen dieses Problems gekämpft; Es endete damit, meine überladene Datei .bash_profile zu sein.

Stellen Sie sicher, Sie haben nichts das könnte mess up Ihre virtualenv in Ihrem .bash_profile/.bashrc, wie $VIRTUAL_ENV oder $PYTHONHOME oder $PYTHONPATH Umgebungsvariablen.

2

Ich weiß, das ist ein alter Beitrag, aber ich habe gerade ein ähnliches Problem festgestellt. In meinem Fall war der Grund, dass ich den Befehl pip install mit sudo ausgeführt habe. Dadurch wurde der Befehl global ausgeführt und die Pakete im globalen Python-Pfad installiert.

Hoffe, dass jemand hilft.

Verwandte Themen