① 利用Pycharm將python程序生成.exe執行文件
文章分兩部分:直接操作將python程序變成.exe文件;過程中碰到的問題。
一、如何操作,用Pycharm將Python程序生成.exe執行文件
- 首先編寫自己的程序,按照需求進行編寫,例如作者編寫的程序如圖所示,紅色框標記為主程序。
在Pycharm中,打開程序,安裝Pyinstaller,它是將程序轉化為exe文件的工具。
- 安裝Pyinstaller有2種方法:
- Pycharm左上角 File 選擇Settings
- Python Interpreter - > 點擊圖中第2步 「+」 號
- 檢索pyinstaller ,選中點擊安裝
- 方法②:打開Pycharm ,點擊Terminal終端,然後在編輯欄輸入pip install pyinstaller即可安裝。
- 生成exe文件:
在Terminal框中編輯 pyinstaller -F -w Select_Data.py
其中Select_Data.py 是作者的主程序名稱,你可以根據自己的主程序不同而變成不同名稱;-F(注意大寫)表示所有庫文件打包成一個可執行文件,windows下是exe,Linux下是對應的可執行文件;-w是運行exe文件時禁止彈出黑色控制台窗口。如果你的項目調用了圖片等本地資源,請將你的可執行文件放在對應目錄才能運行。
執行pyinstaller -F Select_Data.py,不帶-w生成Select_Data.exe,作者運行該exe後發現有個大黑框。
運行完成會多出幾個文件,用紅色框標出,其中需要的exe文件在dist文件夾中,點開dist文件夾,生成的exe就可以雙擊運行程序。
二、操作過程碰到的問題
- 安裝Pyinstaller問題:
問題描述:網路搜索如何將python生成exe文件,搜索的方法清一色均是用cmd命令--->pip3 install pyinstaller,然後我用pip命令安裝後總是報如下錯誤,試了很多種方法均沒有解決。也許有些人能直接安裝吧。
解決方法:見文章描述,在Pycharm中安裝Pyinstaller。
- 執行pyinstaller -F -w Select_Data.py報錯: raise AttributeError(AttributeError: Mole 'PyQt5' has no attribute '__version__')。
問題描述:如上圖所示,錯誤提示Mole 'PyQt5' has no attribute '__version__',裡面有PyQt5,因為的GUI程序使用tkinker搭建的,因此只有tkinker庫,並沒有PyQt5庫。因此增加PyQt5庫,方法是在Pycharm中安裝PyQt5。
- 生成的exe文件太大:
問題描述:生成的exe文件300多M,整個.py文件都沒有幾k,生成的exe大小300M,太不便捷了。
原因分析:在Pycharm中創建的虛擬環境所包含的庫太大,一些用不著的庫也都包含在裡面了。找到對應包的位置,發現足足有1G大小。
解決方法:創建新的虛擬環境,安裝自己需要的庫,找到包的大小,只有133M。
- 執行pyinstaller -F Select_Data_forALL.py報腳本文件未找到錯誤:
腳本 'F:process_datapolar_curveSelectData_exeSelect_Data_forALL.py' not found
背景描述:執行pyinstaller -F Select_Data_forALL.py報腳本文件未找到錯誤,可是明明主程序腳本文件存在。
解決方法:經查找DOS不支持Windows的長文件名, 因此將主程序名稱改短些即可。
② 在WINDOWS上將Python文件轉為生成可執行程序exe文件
閑話就不多說了,需要 Python 2.5 + Py2exe
Py2exe 下載地址 (http://sourceforge.net/projects/py2exe/files/ ) (直接安裝即可)
步驟如下:
1.編譯你的Py文件,確保無誤,保存到…(例如:C:\old\test.py)
2.編輯一個內容如下的py文件,將其保存為(例如:C:\old\go.py )
from distutils.core import setup
import py2exe
setup(console=['test.py' ])
其中紅色部分為第一步保存的文件名
3.運行CMD, 進入文件目錄(例如:cd c:\old ),執行以下命令
運行:python go.py py2exe
紅色部分為第二步保存的文件名
4.到相應文件夾下找到 .exe 文件( 例如 C:\old\dist 下找 test.exe )
完畢!