【发布时间】:2018-11-29 19:17:32
【问题描述】:
Pyinstaller 3.4
Python 3.7 (Windows 7)
我有一个用例,我的主要 python 脚本 foo.py 生成一个我想从中导入内容的 traylist.py 文件。
foo.py 偶尔需要更新这个 traylist.py 文件。因此,foo.py 需要能够在函数中再次导入该traylist.py。我使用这样的重新加载模块函数来完成此操作:
import traylist
importlib.reload(traylist)
menu_def = traylist.menu_def
我也尝试了以下代码,结果相同(在解释器中工作,但在作为 .exe 运行时失败)
import traylist
del sys.modules['traylist']
import traylist
menu_def = traylist.menu_def
当在普通解释器 (python foo.py) 中运行 foo.py 时,所有这些都有效。但是,当我使用 pyinstaller 创建--onefile .exe 时,traylist 模块中的值永远不会刷新。我使用 sys._MEIPASS 检查了路径,可以看到在 MEIxxx 文件夹中生成的新文件。我只是无法让 .exe 正确地重新加载该模块。
【问题讨论】:
标签: python-3.x windows pyinstaller