python打包工具pyinstaller的用法

2022-05-01 10:33:10 字數 2367 閱讀 6748

pyinstaller是乙個很好用的python打包工具,在windows環境下可以將python指令碼打包成乙個exe可執行檔案,並且指令碼中所依賴的各種第三方庫在打包時候都會被統一處理到一起,這樣打包成的exe檔案就可以在沒有安裝這些庫的電腦上執行,甚至也可以在沒有安裝任何python環境的電腦上執行。

pip install pyinstaller

在要打包的py指令碼(比如名稱為demo.py)所在的目錄下,執行:

pyinstaller -f -w -i icon.ico demo.py

其中icon.ico是當前目錄下的乙個圖示檔案,在命令列中執行這條命令後,在當前目錄下的dist目錄中就會生成乙個名為demo.exe的可執行檔案,且其圖示為icon.ico檔案。

幾項引數的含義:

# coding:utf-8

# 測試argparse模組的基本用法

import argparse

# 建立引數解析物件,並新增指令碼用法幫助

parser = argparse.argumentparser(description = 'test the base usage of argparse.')

# 新增位置引數

# 所謂位置引數,就是指直接新增的引數而不用使用'-'、'--'等符號

# 新增了位置引數,它就是必選引數

parser.add_argument('arg0')

# 新增可選引數,但如果執行命令時帶有該引數,後面必須跟引數值

# '-'後面跟短引數,'--'後面跟長引數

# help引數為該引數的幫助資訊

parser.add_argument('-a1','--arg1',help = 'this is arg1')

# 新增可選引數,但後面不能跟引數值

parser.add_argument('-a2','--arg2',help = 'this is arg2',action = 'store_true')

# 新增可選引數並指定引數值資料型別為整型,且資料範圍為[0,1,2],且指定預設值為0,如果輸入的值不是整型或值不在要求的範圍內,則會報錯

parser.add_argument('-a3','--arg3',type = int,choices = [0,1,2],default = 0,help = 'this is arg3')

# 新增一組可選的互斥引數

# a4和a5引數不能同時出現,否則會報錯

group = parser.add_mutually_exclusive_group()

group.add_argument('-a4','--arg4',action = 'store_true')

group.add_argument('-a5','--arg5',action = 'store_true')

#####################################

# 執行解析引數

args = parser.parse_args()

# 列印出位置引數'arg0'

print 'arg0 is: ',args.arg0

# 列印出其他位置引數,注意這裡要用引數的'--'名稱(長引數)

if args.arg1:

print 'arg1 is: ',args.arg1

# 因為arg2後面沒有跟引數值,所以列印出來是true

if args.arg2:

print 'arg2 is: ',args.arg2

if args.arg3:

print 'arg3 is: ',args.arg3

if args.arg4:

print 'arg4 is: ',args.arg4

if args.arg5:

print 'arg5 is: ',args.arg5

在命令列當前目錄下執行命令:pyinstaller -f -i icon.ico argtest.py執行完之後,發現在當前目錄下生成了兩個新目錄:build、dist以及乙個檔案:argtest.spec,build目錄和argtest.spec都是pyinstaller在打包過程中產生的中間檔案,而dist目錄中則可以看到生成了乙個名為argtest.exe的可執行檔案,並且圖示為icon.ico的。

在當前命令列中先cd到dist目錄下,然後執行:argtest.exe -h,可以看到:

再執行:argtest.exe 000 -a1 111 -a3 2,可以看到:

python打包工具比較

前一段用python寫了點小工具,希望能給同事用,這裡總結一下python的打包以及構建的方法。首先是一些需要安裝依賴包的方法,這也是比較推薦的正統的方法。在setup.py檔案中寫明依賴的庫和版本,注意需要提前安裝setuptools,然後執行 python setup.py install檔案大...

Python打包工具比較

solution windows linux os x python 3 license one file mode zipfile import eggs pkg resources support bbfreeze yesyes yesno mitno yesyes yespy2exe yesn...

python打包工具distutils的使用

執行python setup.py sdist既可以打包 from distutils.core import setup setup name dennings version 0.0.2 author shijian packages denning templates py modules i...