最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python命令補(bǔ)全工具argcomplete庫(kù)的使用

 更新時(shí)間:2026年02月08日 10:32:09   作者:YunfengWang  
argcomplete庫(kù)可以為Python命令行工具添加自動(dòng)補(bǔ)全功能,支持bash和zsh等shell,可以對(duì)Python命令、pip命令以及其他以argparse解析的第三方包的命令進(jìn)行補(bǔ)全,下面就來(lái)介紹一下如何使用,感興趣的可以了解一下

1. 概述

在使用Python 命令或者 Python的命令行工具的時(shí)候,一個(gè)痛點(diǎn)是沒有補(bǔ)全。比如python -m后面輸入包名字,就沒有提示,每次想運(yùn)行一個(gè)http server的時(shí)候,都需要搜索一下http服務(wù)的包名。另外,像pip,pipx等命令也沒有提示,使用不太方便。

偶然看到argcomplete這個(gè)庫(kù),按tab鍵就可以給Python的命令行添加自動(dòng)補(bǔ)全,簡(jiǎn)直是使用Python的一個(gè)神器。

具體來(lái)說(shuō),argcomplete有下面的特點(diǎn):

  • 官方支持支持bash和zsh兩種shell,對(duì)tcsh和fish有第三方貢獻(xiàn)者提供的支持(不好意思Windows用戶這里又被當(dāng)做二等公民了 )
  • 可以對(duì)python命令和pip命令進(jìn)行補(bǔ)全
  • 其他任何以argparse解析的第三方包的命令都可以用自動(dòng)補(bǔ)全,添加argcomplete的幾行代碼就行

下面具體展開怎么對(duì)已有的工具啟用自動(dòng)補(bǔ)全,以及如何讓自己的Python包支持argcomplete。

2. 對(duì)Python和pip啟用自動(dòng)補(bǔ)全

首先通過(guò)pip命令來(lái)安裝argcomplete:

pip install argcomplete

然后執(zhí)行下面的語(yǔ)句來(lái)啟用對(duì)Python和pip的自動(dòng)補(bǔ)全:

activate-global-python-argcomplete

重啟Shell,試試輸入pip然后按tab,發(fā)現(xiàn)就會(huì)列出所有的命令選項(xiàng)。

3. 如何對(duì)別的第三方庫(kù)啟用自動(dòng)補(bǔ)全

有些庫(kù)的命令行程序是已經(jīng)支持argcomplete補(bǔ)全,只需要用下面的命令來(lái)激活:

eval "$(register-python-argcomplete <python-app-name>)"

例如 pipx 包安裝后會(huì)在系統(tǒng)安裝一個(gè)命令行程序pipx,且pipx已經(jīng)支持argcomplete,我們就可以用下面的命令來(lái)激活自動(dòng)補(bǔ)全:

eval "$(register-python-argcomplete pipx)"

激活后輸入pipx in 按tab鍵,就可以列出pipx所有以in開頭的命令,再按tab鍵會(huì)在各個(gè)候選命令之間切換。

??注意:這個(gè)激活命令是只對(duì)哪些代碼中已經(jīng)支持了argcomplete語(yǔ)句的程序才生效,如果代碼中無(wú)這些語(yǔ)句,那是不生效的。

4. 如何讓自己的Python庫(kù)支持自動(dòng)補(bǔ)全

只需要增加下面幾行代碼,就能讓你的庫(kù)的命令行支持自動(dòng)補(bǔ)全:

# 在ArgumentParser對(duì)象初始化前增加這兩行
# PYTHON_ARGCOMPLETE_OK
import argcomplete, argparse

# 原有代碼
parser = argparse.ArgumentParser() 
...

# 在調(diào)用parse_args()函數(shù)前增加這一行
argcomplete.autocomplete(parser)

# 原有代碼
args = parser.parse_args()
...

然后你的包安裝后,對(duì)應(yīng)的命令行程序就可以用eval "$(register-python-argcomplete )"來(lái)補(bǔ)全了。

??注意:如果程序執(zhí)行到argcomplete.autocomplete() 被調(diào)用的地方耗時(shí)很久的話,用戶按tab就會(huì)有明顯的延遲感。所以盡量將一些比較耗時(shí)的操作放在argcomplete.autocomplete() 語(yǔ)句后面,比如一些import語(yǔ)句,常常比較耗時(shí),可以往后放。

到此這篇關(guān)于Python命令補(bǔ)全工具argcomplete庫(kù)的使用的文章就介紹到這了,更多相關(guān)Python argcomplete庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

九台市| 耿马| 甘洛县| 昆明市| 平邑县| 张家界市| 银川市| 天长市| 惠水县| 阳原县| 弋阳县| 南安市| 临高县| 镶黄旗| 五常市| 怀宁县| 常山县| 垣曲县| 青浦区| 井陉县| 曲麻莱县| 大港区| 太保市| 烟台市| 建德市| 磐安县| 互助| 察隅县| 蓬安县| 大悟县| 海门市| 泸定县| 林口县| 元谋县| 连城县| 托克逊县| 阿克陶县| 盐边县| 乐清市| 沙洋县| 新竹县|