1、安裝pip install pyinstaller(安裝地址)
2、切換到需要打包的工程路徑 cd D:\task\pyqt5
3、運行命令 pyinstaller -F main.py (xxx.py 打包的文件)
4、打包成功後項目新增dist文件,進入點擊運行打包好的exe程序
Pyinstaller 常用的參數用法:
推薦一個圖標獲取地址,裡面ico蠻多的:easyicon
下載了自己心儀的ico後,用-i+ico路徑來替換默認ico,以管理員的身份運行重新生成exe工具,
命令為pyinstaller -i ico路徑 -w xxxx.py
林某利用pyqt寫了一個對圖片進行情感標注的圖形化界面GUI,但是需要標注的圖片數量過大,只能分時段多次標注,但每一次標注人員完成的數量是隨機的,在下一次標注時,給定的新索引應該為上一次標注結束索引+1。所以需要將索引值傳遞給exe文件對應的py文件,實現動態跟隨。
1、main.py文件中應該出現下列代碼:
self.index = int(sys.argv[1])
2、打開命令提示符窗口cmd,先切換到main.exe所在路徑,比如cd D:task\1\,再輸入命令main.exe 0 #0代表從第一張圖片開始進行情感標注
3、在下一次需要傳遞參數時,重復2的操作,再輸入命令main.exe 456 #456代表從第456張圖片開始標注
為什麼是argv[1]?
sys.argv變量是一個包含了命令行參數的字符串列表,即使用命令行傳遞給程序的參數。例子:cmd執行 python using_sys.py we are arguments
輸出結果如下:
#encoding=utf-8
import sys
a=sys.argv[0]
b=sys.argv[1]
c=sys.argv[2]
c=sys.argv[3]
print("filename:",a)
print("param1:",b)
print("param2:",c)
print("param3:",d)
輸出:
('filename:', 'using_sys.py')
('param1:', 'we')
('param2:', 'are')
('param3:', 'arguments')
其中,sys.argv[0]默認表示代碼本身文件路徑,所以手動傳遞的參數需要從sys.argv[1]開始
在代碼裡面盡量不要用import,能from…import…就盡量用這個,因為如果是import的話,在打包的時候,會將整個包都打包到exe裡面,沒有意義的增大了exe工具的大小
用 Pyinstaller 打包 Python 程序 + 解決打包結果過大的問題