Ich versuche, eine Python-Datei aus einer Codebasis auszuführen und habe ein Minimalbeispiel erstellt, um das Problem zu erklären, mit dem ich konfrontiert bin.
foo
├── bar
│ ├── burp
│ │ └── cache.py
│ ├── __init__.py
│ └── pyro.py
└── __init__.py
Die Datei foo/bar/pyro.py enthält
def explosion():
print('boom boom')
Die Datei foo/bar/burp/cache.py enthält
from bar.pyro import explosion
def setup():
print('setting things up')
setup()
explosion()
Wenn ich foo/bar/burp/cache.py ausführe, erhalte ich den folgenden Fehler.
$ python3 bar/burp/cache.py
Traceback (most recent call last):
File "bar/burp/cache.py", line 1, in
from bar.pyro import explosion
ModuleNotFoundError: No module named 'bar'
Allerdings läuft das Programm einwandfrei, während es im Interpreter läuft.
$ python3
Python 3.8.10 (default, Nov 7 2024, 13:10:47)
>>> exec(open('bar/burp/cache.py').read())
setting things up
boom boom
Was verursacht diesen Unterschied und wie kann ich den Fehler im ersten Ansatz beheben?
Wie kann sichergestellt werden, dass die Python-Datei in einer verschachtelten Ordnerstruktur korrekt ausgeführt wird? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post