【发布时间】:2026-02-07 05:15:01
【问题描述】:
我使用 pyinstaller 创建了一个 exe(我使用的是 python 3.7.6 和 pyinstaller 3.6)
pyinstaller --onefile --icon=icon.ico my_script.py
(即使使用pyinstaller --onedir --icon=icon.ico my_script.py,问题也是一样的)
exe 构建良好,但在此过程中出现多个错误:
25484 INFO: Excluding import 'PyQt5'
25486 INFO: Removing import of PyQt5 from module PIL.ImageQt
25487 INFO: Import to be excluded not found: 'FixTk'
25488 INFO: Excluding import 'tkinter'
25490 INFO: Removing import of tkinter from module PIL.ImageTk
25491 INFO: Loading module hook "hook-PIL.SpiderImagePlugin.py"...
25496 INFO: Excluding import 'tkinter'
25498 INFO: Import to be excluded not found: 'FixTk'
25499 INFO: Loading module hook "hook-pkg_resources.py"...
26227 INFO: Processing pre-safe import module hook win32com
26524 INFO: Excluding import '__main__'
26525 INFO: Removing import of __main__ from module pkg_resources
尽管存在这些错误,但 exe 在某些计算机上运行良好,而在某些计算机上则不行。在它不起作用的地方,我在启动时收到此错误:
Traceback (most recent call last):
File "my_script.py", line 39, in <module>
File "c:\users\valerio\appdata\local\programs\python\python37-32\lib\site-pack
ages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
File "site-packages\cv2\__init__.py", line 3, in <module>
ImportError: DLL load failed: The specified module could not be found.
[2800] Failed to execute script my_script
所以我的问题是:
为什么会出现构建错误?
为什么在某些计算机上工作正常而有些却不行??第二个问题真的让我发疯了..
谢谢
【问题讨论】:
-
PyInstaller 不是跨平台的 - 所以如果你在(例如)Windows 10 64 位机器上编译,然后尝试在 Mac、Linux 甚至 Windows 32 位机器上运行,它不会正常工作,或根本不工作。
-
@wstk 我忘了说其他 PC 也是 Windows。老实说,我不记得它们是 32 位还是 64 位......那么我应该怎么做才能让它独立于平台?
-
不幸的是 PyInstaller 不是跨平台的。如果你想在(比如说)MacOS 上使用
.exe,你需要在 MacOS 上编译它。 -
好的,但是这个问题发生在同一个平台上,所以 windows - windows.当然,我不希望在 MacO 上使用 EXE
-
您使用的是哪个 Windows 版本?
标签: python compiler-errors exe pyinstaller