So entfernen Sie das aktuelle Verzeichnis aus dem python import path

Ich möchte mit dem Mercurial-Repository von hg . Das heißt, ich habe Mercurial von https://www.mercurial-scm.org/repo/hg geklont und möchte einige hg Befehle im geklonten Repository ausführen. Das Problem ist, dass beim Ausführen von hg in diesem Klon hg executable versucht, seine Python-Module aus diesem Verzeichnis und nicht von /usr/lib/pythonVERSION etc. zu /usr/lib/pythonVERSION . Wie ich das verstehe, geschieht dies, weil der Python- sys.path einen leeren String enthält Erster Eintrag, der wahrscheinlich "aktuelles Verzeichnis" bedeutet. PYTHONPATH Umgebungsvariable ist nicht gesetzt.

Die Frage ist, wie kann ich verhindern, dass meine installierte hg importieren "falsche" Module.

2 Solutions collect form web for “So entfernen Sie das aktuelle Verzeichnis aus dem python import path”

@ragol, ich glaube, Padraic hat die richtige Lösung. Innerhalb des Python-Skripts, das du versuchst, hg-Befehle auszuführen, musst du den folgenden Befehl enthalten: sys.path.insert(0,"/usr/lib/pythonVERSION")

Platziere den Befehl am Anfang deines Python-Skripts. Der Befehl sagt Python, um im Verzeichnis /usr/lib/pythonVERSION zuerst beim Importieren von Modulen zu suchen.

Wenn das nicht klappt, müsst ihr vielleicht genauer mit dem Pfad sein. Wenn das Modul, das Sie importieren /usr/lib/pythonVERSION/site-packages/hg sich im /usr/lib/pythonVERSION/site-packages/hg , können Sie den folgenden Befehl verwenden: sys.path.insert(0,"/usr/lib/pythonVERSION/site-packages/hg")

Die Art, wie ich mit dem Thema umgehen würde, ist das Erstellen eines /usr/local/bin/hg sh-Skripts mit folgendem Inhalt:

 #!/bin/sh PYTHONPATH=/usr/lib/pythonVERSION/site-packages /usr/bin/hg 

(Ubuntu-basierte Verteiler verwenden dist-packages anstelle von site-packages )

PYTHONPATH ist eine spezielle Umgebungsvariable, die von Python-Interpreter respektiert wird, um zusätzliche Modul- PYTHONPATH zu erhalten.

Alternativ können Sie PYTHONPATH in Ihre Schale exportieren, aber es wird Ihre gesamte Erfahrung beeinflussen.

  • Virtualenv und Quellversionskontrolle
  • Wie bekomme ich die Datei zählen für jede Revision von Quecksilber mit Python-Skript
  • Python Performance unter Windows
  • Mit Mercurial, um drei Versionen zu trennen: offiziell / Entwicklung / Test /
  • Hosting Mercurial mit IIS 6
  • Mercurial CGI (hgweb.cgi) scheitert
  • PIP hg + und git + lädt immer Paket ein, anstatt zufriedene Anforderung zu ermitteln
  • Fehler beim Einrichten von Mercurial auf Windows Server 2008
  • Mercurial und hgweb auf IIS 7.5 - python error
  • Warum erlaubt hglib keinen Status für eine Revision und ändert sich?
  • Mercurial - Ich möchte einen benutzerdefinierten Code hinzufügen, der nach Commit ausgeführt werden soll
  • Python ist die beste Programmiersprache der Welt.