【发布时间】:2022-04-20 00:32:18
【问题描述】:
我现在为这篇长文道歉。
我正在使用 pyinstaller 将 Hello World 程序从 Python 文件转换为独立的、可分发的可执行文件。我在 Windows 10 Enterprise 上使用 pyinstaller 3.6。 Python 代码是使用 Spyder 4.0.1 编写的(我目前无法更新到 4.1.3)。
我已经创建了 HelloWorld.py 文件:
#! python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 30 12:27:20 2020
@author: DNICHOL3
"""
def main():
print("Hello World!")
if __name__ == "__main__":
main()
以及同一个文件夹中的 cli.py 文件:
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 30 09:07 2020
@author: DNICHOL3
"""
# import HelloWorld
from HelloWorld.__main__ import main
if __name__ == '__main__':
main()
我正在运行带有 –onefile –debug 导入 –clean 标志的 pyinstaller:
pyinstaller cli.py –onefile –debug imports --clean
然后我从 dist 文件夹运行 cli.exe,并得到几个屏幕输出(import xxx、#clear yyy、#restore zzz、#cleanup [2] aaa)。此输出中嵌入了以下几行:
HelloWorld not found in PYZ
Traceback (most recent call last):
File “cli.py”, line 10, in <module>
File “<frozen importlib.bootstrap>”, line 991, in _find_and_load
File “<frozen importlib.bootstrap>”, line 961, in _find_and_load_unlocked
File “<frozen importlib.bootstrap>”, line 219, in _call_with_frames_removed
File “<frozen importlib.bootstrap>”, line 991, in _find_and_load
File “<frozen importlib.bootstrap>”, line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named ‘HelloWorld’
[21600] Failed to execute script cli
查看warn-cli.txt显示确实缺少HelloWorld:
Missing module named ‘HelloWorld.__main__’ imported by C:\Users\dnichol3\python\Utilities\cli.py (top-level)
而且 cli.spec 似乎表明 PYZ 中缺少 HelloWorld:
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
执行生成的cli.exe遇到错误提示:
File “cli.py”, line 10, in <module>
ModuleNotFoundError: No module named ‘HelloWorld’
我已经阅读了 pyinstaller 文档(当事情出错时)。我试图通过使用 –hidden_import 标志将 HelloWorld.py 包含到我的 pyinstaller 命令中,但这始终以 pyinstaller: error: unrecognized arguments: --hidden_import 结尾。而且,hidden_import 和 HelloWorld 之间是否使用等号无关紧要,是否使用 .py 文件扩展名也无关紧要。
我尝试了其他一些 Stack Overflow 建议(https://stackoverflow.com/a/46894037/12344177、https://stackoverflow.com/a/41869771/12344177 和 https://stackoverflow.com/a/47337389/12344177)无济于事。 任何帮助将不胜感激。
【问题讨论】:
标签: pyinstaller