使用 Python 3.5/3.6 将 .py 转换为 .exe?

converting .py to .exe using Python 3.5/3.6?

我在 Python 3.6 中使用 PyQt5 中内置的 GUI 创建了一个应用程序。某些模块仅适用于 Python 3.5 和 3.6。 我设法使用 py2app 在 Mac 上打包它。我正在尝试在 Windows 上做同样的事情。我尝试使用 this guide,但我仍然遇到问题。 据我了解,我有 3 个选项:

  1. py2exe
  2. pyinstaller
  3. cx_Freeze

1) py2exe

根据 here py2exe 仍然不能用于 python3.6,我需要使用 python3.5 然后。

使用 3.5,出现此错误并且编译停止:

error: [Errno 2] No such file or directory: 'C:\Users\carlo\AppData\Roaming\Python\Python35\site-packages\py2exe\run-py3.5-win32.exe'

2) pyinstaller 运行 pyinstaller 通过 Python3.5 作为: pyinstaller --onefile APP.py

我只收到一堆警告(找不到库),但编译结束了。但是,创建的 EXE 打开命令提示符并弹出以下错误:

   Traceback (most recent call last):
  File "site-packages\PyInstaller\loader\rthooks\pyi_rth_qt5plugins.py", line 46, in <module>
  File "c:\program files (x86)\python35-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 573, in load_module
    module = loader.load_module(fullname)
ImportError: DLL load failed: %1 is not a valid Win32 application.
Failed to execute script pyi_rth_qt5plugins

3) cx_Freeze 使用 python3.5,它首先给出 'TCL_LIBRARY' 错误。按照说明 编译顺利进行。但是,创建的应用程序会立即打开并关闭。它根本行不通。 使用 python3.6,编译似乎没问题。当我尝试打开应用程序时,弹出此错误。我刚刚设法快速 screen-shot:

有人有什么建议吗?有没有我不考虑的替代方案?

我成功解决了问题! 我遵循了说明 here。 我先运行(加上Python3.5):

pyinstaller CodeName.py

然后我按照 link 中的指示修改了 .spec 文件,奇迹发生了!