Ich habe ein seltsames Problem mit dem Importieren eines Moduls. Ich habe ein virtualenv Setup und ein Modul ist in {env}/lib/python2.6/site-packages/pkgname
verfügbar. Es gibt eine __init__.py
Datei und pkgname.py
innerhalb.Python importiert Verwirrung
Jetzt, wenn ich {env}/bin/python
ausführen und import pkgname.pkgname
ausführen, funktioniert es ganz gut. Aber wenn ich ein Skript erstellen in {env}/bin/pkgname.py
mit Inhalt:
#!{env}/bin/python
import pkgname.pkgname
if __name__ == "__main__":
pkgname.pkgname.run()
dies nicht versuchen, die gleiche Datei erneut zu importieren (da das Paket und die Datei die gleichen Namen haben). Wie kann ich das Suchen im selben Verzeichnis deaktivieren? Oder wie kann ich den Import erzwingen, um zuerst die globalen Pakete zu betrachten?
Alternativ, was ist der "richtige" Weg, dies zu tun? Aus Gründen der Konsistenz würde ich mein Startskript lieber als das eigentliche Paket bezeichnen, das es auszuführen versucht.
Aus diesem Grund setzen wir keine Erweiterungen für ausführbare Dateien in öffentlichen Verzeichnissen. –