Ulf Rompe schrieb:
Am 03.04.2010 12:08, schrieb René Linke: sys.path[0] enthält immer das Verzeichnis des aktuellen Moduls.
Das kann ich nicht bestätigen. M.E. nach enthält sys.path[0] normalerweise einen leeren String, der als das aktuelle Verzeichnis interpretiert wird1. Es sei denn, irgendein anderes Modul hat vorher sys.path manipuliert. Ich denke, eine etwas robustere Version wäre etwa so: ---> aaa/version.py <--- __version__ = '1.0' ---> end <--- ---> aaa/__init__.py <--- # empty ---> end <--- ---> aaa/bbb/__init__.py <--- import os import sys sys.path.insert(1, os.path.join(os.path.dirname(__file__), os.pardir)) from version import __version__ ---> end <--- Auch diese Version funktioniert allerdings nicht mit Imports von Paketen, die als Zip-Archive gepackt sind:
import sys sys.path.insert(0, 'aaa.zip') from aaa import bbb Traceback (most recent call last): File "<stdin>", line 1, in <module> File "aaa/bbb/__init__.py", line 7, in <module> ImportError: No module named version
Chris