Существует множество других вопросов и ответов, объясняющих нюансы абсолютного импорта Python. Из них у меня был большой проект, хорошо работающий в Linux. Но чтобы сделать исполняемый файл Windows, он должен быть скомпилирован в Windows, и на этой платформе абсолютные ссылки, кажется, нарушаются. Я думаю, что это проблема окружающей среды, но я не могу понять, почему.
# I've tried both setting and unsetting the python path to the project,
# which then shows up in > python -c "import sys; print(sys.path)"
> $env:PYTHONPATH = "C:\Users\Me\Workspace\my_proj"
# I've tried both with and without an __init__.py file in Workspace\
Создание игрушечного проекта для отладки: каталог my_proj\
содержит __init__.py
, a.py
и b.py
Если a.py
содержит строку (и) def foo(): print('Awesome')
, то дляb.py
, я могу импортировать его как import a
без проблем: import a; a.foo()
, в любом каталоге, без __init__.py
.
Но для использования import my_proj.a
или from my_proj import a
, звоните либо из * 1018Каталоги * или Workspace\
с файлами __init__.py
или без них не работают.
Если python может видеть каталог my_proj\
в пути python / sys.path, почему бы это не сработало?