[英]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.