2016-04-18 8 views
1

Ich habe folgende Verzeichnisstruktur:importieren Python-Modul aus übergeordneten Verzeichnis

A/ 
    A1.py 
    B/ 
    B1.py 

Und B1.py ist ein Skript, das auf A1.py. stützt Mein Verständnis ist, dass, wenn A ein __init__.py, dann in B1.py hat, soll ich in der Lage sein, zu sagen:

from A import A1 

Doch egal, was ich tue, ich scheine einen Import zu bekommen: Die Modul A nicht gefunden. Eines der Dinge, die ich versucht habe, tut

import sys 
sys.path.append('path/to/A') 
import A 

Aber dies scheint nicht geholfen zu haben, und trotzdem scheint es mir seltsam, dass eine solche Ad-hoc-Verfahren ist die Lösung.

Ich benutze Python 3.5.1 Auch eine andere Sache, ich denke, ich sollte überprüfen - ist es in Ordnung, nicht - '. Py' Dateien innerhalb eines Moduls zu haben?

Ich bin am Ende meiner Weisheit darüber - ich habe es nachgeschlagen und es scheint mir, dass dieses Setup funktionieren sollte, aber ich nehme an, da ist etwas, das ich einfach nicht verstehe. Es tut mir leid, dass ich vielen zuvor gesehenen Fragen eine mehr oder weniger doppelte Frage gestellt habe, aber es scheint mir, dass ich die Anweisungen in anderen Antworten befolgt habe und es immer noch nicht funktioniert.

Als eine Randnotiz - warum ist das in Python nicht wirklich einfach? Warum kann ich nicht einfach etwas sagen wie

import ../A1 

Jeder Rat oder Kommentar wird sehr geschätzt.

+0

Haben Sie versucht 'von .. Import A1'? Weitere Informationen finden Sie in [PEP 328] (https://www.python.org/dev/peps/pep-0328/). – rmunn

+0

Ja, ich habe das versucht - ich bekomme SystemError: Übergeordnetes Modul '' nicht geladen, kann keinen relativen Import ausführen – ira

+0

Wo genau führen Sie Ihren Python-Befehl aus? – idjaw

Antwort

0

Sie müssen Ihr Modul installieren. Mache einen pip install . aus dem Verzeichnis von A. Dann von B, tun Sie from A import ... Die Tatsache, dass A eine __init__ hat, sagt mir, dass es eine Bibliothek sein soll. Sie benötigen eine setup.py Datei in A's dir.

Verwandte Themen