Ich versuche, mein Python-Projekt neu zu organisieren, indem ich Skripte aus dem Paketverzeichnis in ein Verzeichnis mit einem Top-Level-Skript verschiebe. Nach diesen Änderungen sieht meine Projekt-Hierarchie so aus:
MyProject/
setup.py
scripts/
my_package.py
my_package/
__init__.py
module_foo.py
Beachten Sie, wie das Skript und das Paket denselben Namen haben.
Das Skript my_package.py
sieht etwa so aus:
# MyProject/scripts/my_package.py
import os
try:
import my_package
print os.path.abspath(my_package.__file__)
except ImportError as e:
print e
Wenn wir das obige Skript ausführen, importiert der Interpreter das aktuelle Modul anstelle des Pakets mit dem gleichen Namen (Hinweis: das Paket my_package
wurde bereits als Ei in site-packages
installiert und unsere virtuelle Umgebung ist ordnungsgemäß aktiviert).
Wie kann ich das Paket my_package
aus dem Skript my_package.py
importieren, wenn sie denselben Namen haben?
Weitere technische Informationen:
- Python 2.7.3
- Ubuntu Server 12.04 LTS
- VirtualEnv 1.11.6