python腳本在沒有安裝python的機器上是不能直接運行,須要藉助第三方庫將腳本打包成exe文件,進而運行python程序。python
本文記錄一下Pyinstaller庫打包py文件爲exe的使用方法。框架
1、安裝Pyinstaller庫,pip install pyinstaller 這個不廢話了。工具
2、簡單的py程序,能夠命令行進入pyinstaller所在的文件夾(若是沒有配置環境變量的話,),直接執行(可是不推薦)。
編碼
pyinstaller -F main.py
或者pyinstaller -D main.py
就能夠命令行
-F 表示打包爲單個exe文件
-D 表示打包爲一個文件夾,裏面有不少文件debug
3、推薦這樣來作code
一、考慮到項目複雜要作不少配置, 咱們先來生成一個打包配置文件blog
執行命令pyi-makespec -F main.py
(也能夠pyi-makespec -D main.py
等等), 而後你就會在main.py的同級目錄下看到main.spec文件. 這個文件的主要做用就是指定打包的各類配置。
圖片
二、查看.spec配置文件。例如,若是在打包過程當中提示Matplotlib出錯,而在程序中,未包括使用Matplotlib庫,能夠在封裝的時候不導入這個庫,方法是在spec文件中的excludes行加上excludes=['matplotlib']
ip
三、執行pyinstaller xx.spec
命令從新封裝一遍。
打包好的程序會放在當前文件夾下一個叫dist的文件夾裏面。
4、其餘打包的命令(前提是若是沒有配置環境變量的話,要先進入pyinstaller所在的文件夾)
pyinstaller -F main.py 打包成單個文件
pyinstaller -D main.py 打包爲文件夾
pyinstaller -D -i xxx.ico main.py 定製圖標
-i xxx.ico 表示自定義exe圖標的樣式
附件:pyinstaller相關參數
經常使用的就是-F -D
-F, –onefile 打包一個單個文件,若是你的代碼都寫在一個.py文件的話,能夠用這個,若是是多個.py文件就別用
-D, –onedir 打包多個文件,在dist中生成不少依賴文件,適合以框架形式編寫工具代碼,我我的比較推薦這樣,代碼易於維護 -K, –tk 在部署時包含 TCL/TK -a, –ascii 不包含編碼.在支持Unicode的python版本上默認包含全部的編碼. -d, –debug 產生debug版本的可執行文件 -w,–windowed,–noconsole 使用Windows子系統執行.當程序啓動的時候不會打開命令行(只對Windows有效) -c,–nowindowed,–console 使用控制檯子系統執行(默認)(只對Windows有效)