2017-09-05 152 views
1

我使用PyQt5構建的GUI在Python 3.6中創建了一個應用程序。某些模塊僅適用於Python 3.5和3.6。 我設法使用py2app將它打包在Mac上。我正試圖在Windows上做同樣的事情。我試圖使用this guide,但我仍然有問題。 對於我明白,我有3種選擇: 使用Python 3.5/3.6將.py轉換爲.exe文件?

  • cx_Freeze
  • 1)py2exe

    根據here py2exe仍不可用於python3

    1. py2exe
    2. pyinstaller .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' 的錯誤。按照說明here編譯順利進行。然而,創建的應用程序會立即打開並關閉。它根本不起作用。 使用python3.6,編譯看起來沒問題。當我嘗試打開應用程序時,彈出此錯誤。我只是設法採取快速screen-shot:

      有沒有人有任何建議?我不考慮任何替代方案?

    回答

    0

    我設法解決了這個問題! 我按照說明here。 我第一次跑了(用Python3.5):

    pyinstaller CodeName.py

    然後我修改的.spec文件在link指示,奇蹟發生了!