在使用PyInstaller时,我不确定如何正确理解导入模块中定义的路径。
我有一个像这样结构的小python包:
\toy\
__init__.py
main.py
\admin\
__init__.py
settings.py
settings.py模块标识工作目录,并应将模块main.py传递给它。
main.py代码
from admin.settings import BASE_DIR
with open('./out.txt' , 'w') as f:
f.write("Hello World")
f.write(f"\nThe working directory is {BASE_DIR}\n")
settings.py
代码from pathlib import Path
BASE_DIR = Path(__file__).parent.parent
在main.py模块上应用PyInstaller工作正常。 exe已创建,我可以运行它。
然而,看看out.txt文件,我似乎在构建exe(c:\ users \ my_name \ appdata \ local \ temp ....)时评估了BASE_DIR,而不是提供exe所在的目录位于。
有没有办法改变这种行为,即从settings.py模块传递exe的位置。
致以最诚挚的问候,
PS:我正在使用Windows 10和Python 3.6