Python版本:Python3.8
一、安裝Pyinstaller
1、安裝pywin32
-
-
下載安裝文件:查找到跟自己適用的python版本及window系統版本匹配的pywin32,下載后安裝
-
使用pip命令安裝:pip install pywin32
-
2、安裝Pyinstaller
-
-
下載安裝文件安裝:官網
-
-
-
使用pip命令安裝:pip install PyInstaller
-
二、使用Pyinstaller
1、使用下載安裝的方式安裝的Pyinstaller打包方式
將需要打包的文件放在解壓得到的Pyinstaller文件夾中,打開cmd窗口,把路徑切換到當前路徑打開命令提示行,輸入以下內容(最后的是文件名):
-
- python pyinstaller.py -F myfile.py
2、使用pip方式安裝的Pyinstaller打包方式
打開cmd窗口,把路徑切換到文件所在路徑(文件隨便放在哪里都行)打開命令提示行,輸入以下內容(最后的是文件名):
-
- pyinstaller -F myfile.py
3、輸入參數的含義
-
-F 表示生成單個可執行文件
-
-w 表示去掉控制台窗口,這在GUI界面時非常有用。不過如果是命令行程序的話那就把這個選項刪除吧!
-
-p 表示你自己自定義需要加載的類路徑,一般情況下用不到
-
-i 表示可執行文件的圖標
打包exe文件:
如果是打包一個py文件,可以使用“pyinstaller -F 待打包文件名”進行打包,在命令執行完畢后,會在dist目錄下生成一個“待打包文件名.exe”的文件。如果不使用“-F”參數,則會在dist目錄下生成一個“待打包文件名”的文件夾,該文件夾下包含“待打包文件.exe”,但是要整個文件夾在一起才能正常工作,因為這個文件夾的功能相當於使用“-F”時的一個“待打包文件.exe”。
使用“F”強制打包參數,有時會導致軟件功能運行不正常,僅限於小的范例使用,如果項目有多個py文件,則建議別再使用“F”參數。
如果項目有多個文件,打包時可以把多個文件列出來,中間用空格隔開即可。
如果需要修改默認圖標為指定圖標,則使用“-i 圖標文件名”來實現。如:pytinstall -i XXX.ico run.py test1.py test2.py test3.py
如一個項目下有多個子文件,子文件里面又有py文件或配置文件,打包方法參考:1、把啟動文件放在和文件夾一個目錄。 2、pyinstaller -D 啟動文件 3、這時候會生成buid和dist dist應該是空的 但是會多出一個啟動文件名.spec 4、在.spec文件里寫上 import sys sys.setrecursionlimit(100000) block_cipher = None 5、pyinstaller 啟動文件名.spec 6、這時候dist文件夾里就有啟動文件.exe程序了 如果沒有其他錯誤i應該就可以執行了。(沒試過)
pyinstaller的參數見下表,大家可以在需要時參考。
三、注意事項
-
文件中使用了第三方庫的打包方式
在打包之前務必找到第三方庫的包,把包復制到到跟myfile.py同目錄下,然后再使用以上2種方式打包,否則會打包失敗或者即使打包成功,程序也會閃退。
下面演示一下使用了第三方庫的打包方式:
-
- 找到第三方庫的包,如使用了requests,可以使用查找的方式,找到這個包在哪里,然后把它復制到myfile.py同目錄下
-
- 把包文件復制到myfile.py目錄下
-
- 給程序換圖標的方法
- 輸入命令中添加一個-i tubiao.ico(圖標的相對路徑)。如圖:
- 給程序換圖標的方法
四、exe文件生成
- 如果程序打包過程沒有報錯,則會生成3個文件夾(有時候是2個),其中名為dist的文件夾中會有一個myfile.exe文件,運行一下,如果沒有問題就打包成功,可以把這個exe文件單獨拿出去用,其他的生成的文件夾可以刪掉了。