Python-Submodul Importe mit __init__.py

Lerne ich Python, und ich kann nicht herausfinden, wie die Importe in __init__.py Arbeit.

Ich verstehe von das Python-tutorial, dass die __init__.py Datei initialisiert ein Paket, und das kann ich importieren Unterpakete hier.

Mache ich etwas falsch, obwohl. Können Sie uns erklären, für mich (und für zukünftige Python-Lernende) was mache ich falsch?

Hier ist ein Vereinfachtes Beispiel, was ich versuche zu tun.

Dies ist meine Dateistruktur:

package
    __init__.py
    test.py
    subpackage
        __init__.py
        hello_world.py

Den Inhalt hello_world.py:

def do_something():
    print "Hello, world!"

subpackage/__init__.py leer ist.

package/__init__.py enthält:

import test.submodule.do_something

Und schließlich test.py enthält:

do_something()

Dies ist, wie ich versuchen zu laufen hello_world.py mit OSX terminal und Python 3:

python test.py

Python wirft dann folgenden Fehler:

NameError: name 'do_something' is not defined
  • Ich nehme an, der test.py Sie ausführen, ist package/test.py? Wenn ja, gibt es keine Notwendigkeit, dass ich sehen kann, um es in eine Paket, und so package/__init__.py würde zu sein scheinen völlig irrelevant.
InformationsquelleAutor Benjamin | 2014-06-19
Schreibe einen Kommentar