簡體   English   中英

PyInstaller .exe 文件什么都不做

[英]PyInstaller .exe file does nothing

3天后,我無法將python程序打包成.exe文件。 我試過 py2exe(它不斷錯過模塊)和 PyInstaller。

這是復雜的部分。 我的程序使用了許多額外安裝的模塊(coopr、pyomo、openpyxl、glpk、cbc、pyutilib、numpy 等)。 這些反過來又導入了各種其他東西,我無法追蹤它(PyInstaller 警告日志列出了 676 行丟失或可能不需要的模塊。)

但是,我得到了(通過將“缺失”模塊的導入添加到我的程序中)一個 .exe 版本,它通過雙擊或從命令行運行,沒有打印任何錯誤。

問題是,程序什么都不做。 我有一個包含在構建中的輸入文件,我的程序讀入該文件,進行一些(密集)計算,然后在同一目錄中創建一個 .csv 輸出文件。 它作為 .py 文件工作。 我的 .exe 什么也不做。

所以,如果你能告訴我出了什么問題,請繼續。 如果沒有,我想知道任何有用的步驟或想法可以嘗試。 在這一點上,我已經用盡了可以從程序和文檔中找到的反饋。

我只是為自己解決了這個問題。

確保您沒有與您嘗試轉換為可執行文件的腳本同名的文件夾。

如果您已經有應用程序文件sample.py以及文件夾sample (例如包含您的其他 .py 文件)並且您希望應用程序保留名稱sample ,您可以通過將sample.py重命名為sample_app.py來解決此問題sample_app.py然后使用 --name 選項調用 pyinstaller 例如, pyinstaller --onefile --name sample sample_app.py由 pyinstaller 創建的二進制文件將被稱為sample

創建exe時,請確保python腳本包含

if __name__ == '__main__':
    main()

在底部。 否則,python exe 將運行,但由於它沒有什么可運行的,它將結束。

我也無法使 pyinstaller 正常工作,但是幾年前我找到了一個在 Windows 上生成 R 腳本可執行文件的解決方案,所以我用 python 嘗試了它並且它起作用了!

這是解決方案,僅在 CMD 中的 3 行中:

https://github.com/jorgeavilacartes/making-my-own-executable-python

您可以創建自己的擴展並將其分配給您希望的 python.exe(如果您有很多 venv,您可以為每個擴展創建一個可執行擴展)

不幸的是,我只有 Windows 的解決方案。

希望能幫助到你!

PD:小心不要在創建可執行文件的同一文件夾中包含任何.ipynb ,它無法正常運行,我不知道為什么,但這是我遇到的唯一問題。

當在 windows 中雙擊 exe 無法運行時,關聯的窗口也會自動關閉。 如果發生這種情況,請打開命令提示符並嘗試通過轉到適當的路徑並輸入文件名(例如C:\\github\\program\\dist\\main.py )來運行該 exe。 應用程序拋出的任何錯誤都將打印在命令提示符窗口中,而不會自動關閉。

如果您的腳本訪問非 Python 文件,請移動可執行文件以便它可以找到它們。

我遇到了同樣的問題。 對我來說,原因是我的一些 Python 文件需要訪問非 Python 文件(在我的例子中是 gifs)。 PyInstaller 沒有將資源與 Python 文件捆綁在一起,也沒有將可執行文件與主 Python 文件放在同一目錄中,因此當我的程序嘗試訪問它們時出現錯誤。 解決方案只是將資源復制到可執行文件正在尋找它們的位置,反之亦然。

出於某種原因,當我正常運行 PyInstaller 時,沒有生成幫助我找到問題的錯誤消息。 它們僅在使用--onefile標志時生成,即便如此,它們在提示關閉前只停留了不到半秒。 當消息出現時,我不得不使用ctrl + prt來捕獲我的屏幕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM