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

时间:2017-09-05 03:08:36

标签: python python-3.x pyinstaller py2exe cx-freeze

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

  1. py2exe
  2. pyinstaller
  3. cx_Freeze
  4. 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 通过Python3.5运行pyinstaller: pyinstaller --onefile APP.py

    我只收到一堆警告(未找到lib),但编译结束了。但是,创建的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&#39;错误。按照here说明编译顺利进行。但是,创建的应用程序会立即打开和关闭。它根本不起作用。 使用python3.6,编译似乎没问题。当我尝试打开应用程序时,会弹出此错误。我刚刚设法快速screen-shot:

    有人有任何建议吗?我不考虑任何其他选择?

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题! 我按照request.endpoint attribute的说明进行操作。 我第一次跑(用Python3.5):

pyinstaller CodeName.py

然后我修改了here中指示的.spec文件,发生了魔法!