0

我正在尝试使用 pyinstaller 将程序转换为 exe。该程序执行用户计算机的硬件评估,包括使用 speedtest-cli 运行互联网速度测试。该程序运行良好,直到我编译它,此时我收到以下错误:

Traceback (most recent call last):   File "speedtest.py", line 156, in <module> ModuleNotFoundError: No module named '__builtin__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):   File "hw-assesment-tool.py", line 9, in <module>   File "<frozen importlib._bootstrap>", line 1007, in
_find_and_load   File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked   File "<frozen importlib._bootstrap>", line 680, in _load_unlocked   File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module   File "speedtest.py", line 179, in <module>   File "speedtest.py", line 166, in __init__ AttributeError: 'NullWriter' object has no attribute 'fileno'

我已经尝试升级并重新安装 speedtest-cli 并没有解决问题。

PS这是错误的截图:

源自 Speedtest-cli 的编译 Python EXE 错误

4

3 回答 3

0

__builtin__在 Python 3中更改为builtins。我从 repo 中提取了 speedtest-cli 代码并编辑了 Python2 功能,它运行良好。

于 2021-09-28T17:34:43.180 回答
0

我之前遇到过同样的问题,你需要修改spec文件:hiddenimports=['speedtest'],并通过spec文件构建exe(键入命令:pyinstaller -F main.spec),它的工作!

于 2021-10-05T08:12:32.030 回答
0

首先,您需要转到 C:\Users\user\AppData\Local\Programs\Python\Python38\Lib\site-packages。然后找到speedtest.py并使用记事本或任何其他文本编辑器打开它。

现在您需要编辑这些代码行

第 156 行:到

import builtins

第 158 行:到

import builtins

第 199 行:到

del builtins

要确认,您可以找到__builtin__并替换为builtins

于 2022-02-13T06:38:02.073 回答