要在一個沒有python環境的電腦上部署python程式,就需要先将py檔案編譯打包為exe檔案,這樣就省去了安裝編譯環境的麻煩,運作上也更為簡易
将py檔案打包為exe使用的主流工具是pyinstaller
以下是pyinstaller在純pycharm下打包程式的過程:
一、安裝pyinstaller
pyinstaller的安裝主要有兩種方式:
1.使用指令行
在已經安裝了pip的情況下,在指令行輸入
pip intsall pyinstaller
2.在pycharm下工具欄點選File -settings,然後進入project interpreter
點選右上角+号,進入搜尋界面,搜尋pyinstaller
記得在下方框選 Install to user's site packages directory并且記住右邊檔案夾的位置
點選Install Pcakage即可安裝,安裝成功後IDE右下方會有提示,同時在package界面也會顯示已經安裝
二、為pyinstaller配置環境變量
在系統環境變量中添加之前記住的檔案夾下Scripts的目錄
示例:
C:\Users\DELL\AppData\Roaming\Python\Python36\Scripts
如果沒有配置環境變量,在使用中可能會出現
pyintsaller不是内部或外部指令,也不是可運作的程式或批處理檔案
三、使用pyinstaller打包exe
在Pycharm IDE下方的Terminal即可快速喚出指令行,效果同cmd是一樣的
常用參數:
-F :将一個或多個py檔案打包為唯一一個exe,是最常用到的參數
-w :打包生成的exe不含控制台(即運作中跳出的黑框),如果不加-w預設生成攜帶控制台的程式,同時也可以使用-c來訓示exe攜帶控制台
注:如果你寫的程式隻有指令行,而沒有類似于pyqt5的圖形界面,不需要去掉控制台選項
-i:打包生成的exe檔案使用使用者指定的圖示
1.正常打包單個檔案:
pyinstaller -F main.py #控制台程式和GUI程式均适用
pyintsaller -F -w main.py #GUI程式适用,用于隐藏控制台
pyinstaller -F -w -i 圖示.ico main.py#隐藏控制台,并指定exe的圖示
2.打包多個檔案需要用到-p參數,表示對其他py檔案的引用
主檔案要在前面,-p後是主檔案引用的其他檔案,用-p加檔案名往後疊加,以此類推
示例:main.py 調用了1.py和2.py,現要将他們同時打包成一個exe檔案,并且去掉控制台,并指定圖示
pyinstaller -F -w -i 圖示.ico main.py -p 1.py -p 2.py
四、python 32 64位打包程式運作問題
如果系統安裝的是64位的python,打包後的程式隻能在64位的電腦下運作,在32位的電腦下會報錯
如果系統安裝的是32位的python,在32位和64位系統下都能運作,不受影響