webentwicklung-frage-antwort-db.com.de

Fügen Sie zu python path mac os x hinzu

Ich dachte

import sys
sys.path.append("/home/me/mydir")

hängt ein Verzeichnis an meinen Pythonpfad an

wenn ich sys.path drucke, ist mein Verzeichnis dort.

Dann öffne ich einen neuen Befehl und er ist nicht mehr da.

Aber irgendwie kann Python keine Module importieren, die ich in diesem Verzeichnis gespeichert habe.

Was mache ich falsch?

Ich lese .profile oder .bash_profile wird den Trick machen.

Muss ich hinzufügen:

PATH="/Me//Documents/mydir:$PYTHONPATH"
export PATH

Damit es funktioniert?

52
MacPython

Änderungen an sys.path Gelten nur für die Laufzeit dieses Python Interpreters. Wenn Sie dies dauerhaft tun möchten, müssen Sie die Umgebungsvariable PYTHONPATH ändern:

PYTHONPATH="/Me/Documents/mydir:$PYTHONPATH"
export PYTHONPATH

Beachten Sie, dass PATH der vollständig separate Systempfad für ausführbare Dateien ist.

** Sie können das Obige in ~/.bash_profile Und die Quelle in source ~/.bash_profile Schreiben.

70

Ich bin mir nicht sicher, warum Matthews Lösung bei mir nicht funktioniert hat (könnte sein, dass ich OSX10.8 verwende oder vielleicht etwas mit Macports zu tun habe). Aber ich habe am Ende der Datei Folgendes hinzugefügt: ~/.profile

export PYTHONPATH=/path/to/dir:$PYTHONPATH

mein verzeichnis ist jetzt auf dem pythonpfad -

my-macbook:~ aidan$ python
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/path/to/dir', ...  

und ich kann Module aus diesem Verzeichnis importieren.

8
Aidan Ewen

Mathews Antwort funktioniert für das Terminal python Shell, aber es funktionierte in meinem Fall nicht für IDLE Shell, da viele Versionen von python existierten, bevor ich sie alle ersetzte mit Python2.7.7 Wie ich das Problem mit IDLE gelöst habe.

  1. Im Terminal wird cd /Applications/Python\ 2.7/IDLE.app/Contents/Resources/
  2. dann Sudo nano idlemain.py, Passwort eingeben, falls erforderlich.
  3. nach os.chdir(os.path.expanduser('~/Documents')) dieser Zeile habe ich sys.path.append("/Users/admin/Downloads....") hinzugefügt. HINWEIS: Ersetzen Sie den Inhalt der Anführungszeichen durch das Verzeichnis, in dem python hinzuzufügendes Modul
  4. um die Änderung zu speichern, drücken Sie Strg + x und geben Sie Folgendes ein: Öffnen Sie nun den Leerlauf und versuchen Sie, das python Modul zu importieren, kein Fehler für mich !!!
2
Tennom

Das Festlegen der Umgebungsvariablen $ PYTHONPATH wirkt sich anscheinend nicht auf die iPython-Terminals der Spyder IDE auf einem Mac aus. Das Anwendungsmenü von Spyder enthält jedoch einen "PYTHONPATH-Manager". Das Hinzufügen meines Pfades hier löste mein Problem. Der "PYTHONPATH-Manager" bleibt auch nach einem Neustart der Anwendung bestehen.

Dies ist für einen Mac spezifisch, da das Festlegen der Umgebungsvariablen PYTHONPATH auf meinem Windows-PC das erwartete Verhalten (Module werden gefunden) ergibt, ohne den PYTHONPATH-Manager in Spyder zu verwenden.

2
Andros