Ich experimentiere mit Python, vor allem die Fehlersuche anderen Menschen Code. Ich versuche, ein Programm auszuführen, "".Fehler Python-Import aus einem anderen Ordner
Ich verwende das Programm von path\folderA
ich eine Störung erhalte:
ImportError: No module named fff.ggg.ppp
program.py einen Import enthält:
from fff.ggg.ppp import mmm
Im Ordner "Pfad \ ordnerB" dort sind: "path\folderB\fff\__init__.py
" "path\folderB\fff\ggg
"
Ordner ggg
enthält auch __init__.py
sowie Programm ppp.py
Aus der Lektüre anderen Beiträgen, wie Python error "ImportError: No module named" Ich verstehe, dass die __init__.py
mit einem Ordner ein „Paket“ macht die Importe aus es möglich macht - aber es doesn‘ t arbeiten, da ich einen Fehler bekomme.
Das hat für andere Leute funktioniert, die mit diesen Projekten gearbeitet haben, also stimmt etwas nicht mit meinem Setup.
Ich habe etwas über die Verzeichnisse gelesen, die im sys.path sein müssen. Bedeutet das, dass ich sie zum Umgebungsvariablenpfad hinzufügen muss? Das würde bedeuten, dem PATH viele Verzeichnisse hinzuzufügen, das kann es nicht sein.
So fand ich auch die folgenden:
import sys
sys.path.append(<path to FolderB>)
Das bedeutet aber, den Code zu ändern (die für andere Personen nicht notwendig war) und Hartcodierung einen Weg zu dem, was es auf meinem lokalen Rechner ist - die Ich sollte nicht müssen, oder?
Ich kann es nicht visualisieren - anscheinend soll ich den Code nicht ändern und den physischen Pfad zum Importmodul fest codieren - wie kann also ein Programm von folderA in Ordner B nach einem Import suchen?
Wie funktioniert die Magie von __init__.py
?
Python sieht in der 'PYTHONPATH' Umgebungsvariable, nicht 'PATH' – mgilson