(Я ценю, что в StackOverflow уже есть много похожих вопросов, но ни один из них мне не помог.)
У меня есть следующая структура:
code/
foo/
__init__.py
foo.py
bar/
__init__.py
bar.py
Я хочу иметь возможность импорт foo
как пакет в bar.py
без возни с sys
.
Это мой foo.py
:
hello = 'Hello, world!'
Это мой bar.py
:
import foo
print(foo.hello)
Но если я выполню python foo/bar/bar.py
, я получу следующую ошибку:
ModuleNotFoundError: No module named 'foo'
Из всех вещей, что больше всего сводит меня с ума, так это то, что если я добавлю следующий фрагмент сверху из bar.py
:
import pkgutil
search_path = ['.']
all_modules = [x[1] for x in pkgutil.iter_modules(path=search_path)]
print(all_modules)
Тогда я фактически получаю foo
в качестве доступного модуля (все еще не работает), здесь:
['foo']
ModuleNotFoundError: No module named 'foo'