2016-05-12 6 views
1

Ich arbeite auf einem Server ohne Root-Zugriff und nach einem Neustart scheint es, dass meine Path-Variablen für zerstört sind. Da es mir nicht erlaubt ist, virtualenv zu verwenden, verwende ich pip install --user package, um Python-Pakete zu installieren.Ubuntu erkennt .local Python Pfad nicht

Seit einem Neustart kann ich nur veraltete Bibliotheken in /usr/lib/python2.7/dist-packages, verwenden aber nicht /.local/lib/python2.7/site-packages.

Ich kann auch keine Pakete wie Scrapy oder Spyder aus dem .local-Pfad im Terminal verwenden. Ich habe bereits festgelegt exportieren PYTHONPATH = $ PYTHONPATH: /. Local/lib/python2.7/Site-Pakete, aber es gibt keine Änderungen.

Der .local Pfad wird auch nicht angezeigt, wenn ich print (sys.path) in Python ausführen.

Muss ich einen anderen Pfad ändern?

Das Betriebssystem ist Ubuntu 14.04.

Vielen Dank im Voraus.

+0

Ich habe das gleiche Problem. Aber für mich bekommt IPython immer noch den richtigen 'sys.path' und importiert die installierten Module in' .local/lib/python2.7/site-packages'. Dieses Problem ist [hier] erwähnt (https://stackoverflow.com/questions/23209192/ipython-sys-path-different-from-python-sys-path), aber es erklärt immer noch nicht, warum plötzlich python entschied, das zu verwenden falsche Site-Pakete ... – PlasmaBinturong

Antwort

0

Bitte versuchen Sie folgendes:

whereis python 

Python verwendet immer das erste Paket es findet. Der PYTHONPATH wird nach dem System an sys.path angehängt. Normalerweise wird das System zuerst gefunden. Aber das "offizielle" pro-Benutzer-Paket-Verzeichnis scheint davor platziert zu sein. So erstellen Sie Ihre persönliche Website-Pakete Verzeichnis:

mkdir -p $HOME/.local/lib64/python2.7/site-packages 
mkdir $HOME/bin 

(Sie müssen möglicherweise „lib64“ auf „lib32“ oder einfach nur „lib“)

Dieses Verzeichnis, bevor das System auf meinem System platziert wird . Aber Sie sollten es überprüfen, indem Sie sys.path ausdrucken.

Dann installieren Sie Ihre Pakete in dort. Allerdings sollte die --user Option in der neuesten pip Version es bereits dort platzieren.

Als Liste Resort können Sie sys.path manipulieren. Sie können Ihr Verzeichnis vor den System-Site-Paketen in sys.path einfügen.

Sie können zusätzliche Optionen zur Installation von Skripten in Ihrem $ HOME/bin-Verzeichnis übergeben.

wie folgt installieren:

pip install --user --install-option="--install-scripts=$HOME/bin" 
+0

Vielen Dank für die schnelle Antwort. Dies zeigt den Python-Pfad, aber der .local-Pfad ist nicht vorhanden. Ich würde gerne wissen, wie man den pip-Benutzerpfad zum Python-Pfad hinzufügt (ich habe bereits versucht, $ PYTHONPATH zu modifizieren) – Norovis