【发布时间】:2020-09-03 18:45:31
【问题描述】:
我是 Python 的新手,对其他语言没有真正的经验。我正在完成这门语言的入门课程,现在我正在做我的最后一个项目。 我正在使用 PyCharm 并运行 Python 3.8。
我的程序使用 pyfiglet 进行一些 ascii 艺术风格的介绍。
时间模块来模拟一些基本的动画。
这段代码似乎禁止我获取 .exe 文件。我试了一下,但是当我想运行它时,它会立即关闭 cmd。它甚至不让我输入程序开始运行所需的第一个信息。
print("Setting up plugboard connections...")
plug_amount = len(key[0][0])
for i in range(plug_amount):
print(key[0][0][i], " ", end="", flush=True)
time.sleep(0.3)
for k in range(12):
print("-", end="", flush=True)
time.sleep(0.1)
print(" ", key[0][1][i], " ", flush=True)
print("Done!")
time.sleep(0.5)
在该位出现之前,来自this tutorial 的 pyinstaller 和 cx_freeze 工作。现在它不起作用,我真的很想与朋友分享这个程序,不管课程如何。 我该如何解决这个问题?
编辑:
这是我从 cmd 运行 exe 时得到的回溯
Traceback (most recent call last):
File "site-packages\pkg_resources\__init__.py", line 359, in get_provider
KeyError: 'pyfiglet.fonts'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "enigma.py", line 179, in <module>
File "enigma.py", line 9, in main
File "site-packages\pyfiglet\__init__.py", line 65, in figlet_format
File "site-packages\pyfiglet\__init__.py", line 794, in __init__
File "site-packages\pyfiglet\__init__.py", line 801, in setFont
File "site-packages\pyfiglet\__init__.py", line 126, in __init__
File "site-packages\pyfiglet\__init__.py", line 136, in preloadFont
File "site-packages\pkg_resources\__init__.py", line 1134, in resource_exists
File "site-packages\pkg_resources\__init__.py", line 361, in get_provider
ModuleNotFoundError: No module named 'pyfiglet.fonts'
[13684] Failed to execute script enigma
编辑 2:
这是我尝试重建为pyinstaller enigma.py --hidden-import=pyfiglet.fonts后得到的结果
Traceback (most recent call last):
File "enigma.py", line 179, in <module>
File "enigma.py", line 9, in main
File "site-packages\pyfiglet\__init__.py", line 65, in figlet_format
File "site-packages\pyfiglet\__init__.py", line 794, in __init__
File "site-packages\pyfiglet\__init__.py", line 801, in setFont
File "site-packages\pyfiglet\__init__.py", line 126, in __init__
File "site-packages\pyfiglet\__init__.py", line 136, in preloadFont
File "site-packages\pkg_resources\__init__.py", line 1134, in resource_exists
File "site-packages\pkg_resources\__init__.py", line 1404, in has_resource
File "site-packages\pkg_resources\__init__.py", line 1472, in _has
NotImplementedError: Can't perform this operation for unregistered loader type
[12620] Failed to execute script enigma
【问题讨论】:
-
打开命令提示符,导航到使用 PyInstaller 生成的可执行文件的目录,然后运行它。回溯是什么?
-
@Legorooj 我会把它添加到帖子中
-
--hidden-import=pyfiglet.fonts? -
@Legorooj 我不明白你的意思...
-
@Legorooj 你真好。幸运的是,我仍然可以在没有该功能的情况下完成我的最终项目,但我确信一旦修复它,它将对所有其他编码人员都非常有帮助。
标签: python-3.x pycharm pyinstaller cx-freeze flush