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

Python命令補全工具argcomplete庫的使用

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

1. 概述

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

偶然看到argcomplete這個庫,按tab鍵就可以給Python的命令行添加自動補全,簡直是使用Python的一個神器。

具體來說,argcomplete有下面的特點:

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

下面具體展開怎么對已有的工具啟用自動補全,以及如何讓自己的Python包支持argcomplete。

2. 對Python和pip啟用自動補全

首先通過pip命令來安裝argcomplete:

pip install argcomplete

然后執(zhí)行下面的語句來啟用對Python和pip的自動補全:

activate-global-python-argcomplete

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

3. 如何對別的第三方庫啟用自動補全

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

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

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

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

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

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

4. 如何讓自己的Python庫支持自動補全

只需要增加下面幾行代碼,就能讓你的庫的命令行支持自動補全:

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

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

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

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

然后你的包安裝后,對應的命令行程序就可以用eval "$(register-python-argcomplete )"來補全了。

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

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

相關文章

最新評論

滁州市| 吉木乃县| 遂平县| 望都县| 景谷| 宿州市| 新乡市| 宁夏| 乐清市| 昌宁县| 靖边县| 松桃| 满洲里市| 北流市| 五华县| 师宗县| 德格县| 永德县| 中方县| 海丰县| 柘荣县| 汾西县| 壶关县| 海城市| 库伦旗| 深州市| 定兴县| 垣曲县| 洪雅县| 焦作市| 岳普湖县| 延川县| 资兴市| 郴州市| 司法| 嘉峪关市| 余庆县| 和林格尔县| 衡南县| 兴城市| 广水市|