[Python-de] Modul wird nicht gefunden

Mike Müller mmueller at python-academy.de
Sa Sep 6 11:15:55 CEST 2014


Hallo Helmut,

Am 06.09.14 10:31, schrieb helmut_blass at web.de:
> Hallo,
> ich habe drei python scripts in einem Order:
> a.py
> b.py
> c.py
> ------
> Script a importiert c (import c): kein Problem
> Script b importiert c (import c) : Programm bricht ab, in Logdatei steht diese Fehlermeldung:
>   PythonHandler mod_python.cgihandler: ImportError: No module named c
> -----
> Wie ist so etwas möglich???

Python findet Module normaler Weise im aktuellen Verzeichnis. Wenn jetzt aber
c.py oder b.py oder von diesen importierte Module das aktuelle
Arbeitsverzeichnis ändern, sucht Python an einer anderen Stelle und findet
c.py nicht.

Eine sinnvolle Lösung wäre alle drei Dateien, a.py, b.py und c.py, zusammen mit
einer Datei __init__.py, die leer sein kann, in ein Verzeichnis z.B. meinprg
zu stecken:

meinprg
     __init__.py
     a.py
     b.py
     c.py


Das übergeordnete Verzeichnis, in dem meinprg liegt, muss in den sys.path
[1]. Das geht z.B. mit der Umgebungsvariable PYTHONPATH [2]. Dann sollte ein

import meinprg.c as c

oder

from meinprg import c

funktionieren. Es gibt da noch einige Details [3].

Viele Grüße
Mike


[1] https://docs.python.org/3/library/sys.html?highlight=sys.path#sys.path
[2]
https://docs.python.org/3/using/cmdline.html?highlight=pythonpath#envvar-PYTHONPATH
[3] https://docs.python.org/3/reference/import.html#packages


Mehr Informationen über die Mailingliste python-de