加入收藏

Python命令补全工具argcomplete简介_最新快讯

2023-07-05 05:39:45 来源:稀土掘金技术社区

1. 概述

在使用Python命令或者 Python的命令行工具的时候,一个痛点是没有补全。比如python -m后面输入包名字,就没有提示,每次想运行一个http server的时候,都需要搜索一下http服务的包名。另外,像pip,pipx等命令也没有提示,使用不太方便。

偶然看到argcomplete[1]这个库,按tab键就可以给Python的命令行添加自动补全,简直是使用Python的一个神器。


【资料图】

具体来说,argcomplete有下面的特点:

官方支持支持bash和zsh两种shell,对tcsh和fish有第三方贡献者提供的支持(不好意思Windows用户这里又被当做二等公民了 )

可以对python命令和pip命令进行补全

其他任何以argparse解析的第三方包的命令都可以用自动补全,添加argcomplete的几行代码就行

下面具体展开怎么对已有的工具启用自动补全,以及如何让自己的Python包支持argcomplete。

2. 对Python和pip启用自动补全

首先通过pip命令来安装argcomplete:

pipinstallargcomplete

然后执行下面的语句来启用对Python和pip的自动补全:

activate-global-python-argcomplete

重启Shell,试试输入pip然后按tab,发现就会列出所有的命令选项。

3. 如何对别的第三方库启用自动补全

有些库的命令行程序是已经支持argcomplete补全,只需要用下面的命令来激活:

eval"$(register-python-argcomplete)"

例如 pipx 包安装后会在系统安装一个命令行程序pipx,且pipx已经支持argcomplete,我们就可以用下面的命令来激活自动补全:

eval"$(register-python-argcompletepipx)"

激活后输入pipx in 按tab键,就可以列出pipx所有以in开头的命令,再按tab键会在各个候选命令之间切换。

注意:这个激活命令是只对哪些代码中已经支持了argcomplete语句的程序才生效,如果代码中无这些语句,那是不生效的。

4. 如何让自己的Python库支持自动补全

只需要增加下面几行代码,就能让你的库的命令行支持自动补全:

# 在ArgumentParser对象初始化前增加这两行# PYTHON_ARGCOMPLETE_OKimport argcomplete, argparse# 原有代码parser = argparse.ArgumentParser() ...# 在调用parse_args()函数前增加这一行argcomplete.autocomplete(parser)# 原有代码args = parser.parse_args()...

然后你的包安装后,对应的命令行程序就可以用eval "$(register-python-argcomplete )"来补全了。

注意:如果程序执行到argcomplete.autocomplete() 被调用的地方耗时很久的话,用户按tab就会有明显的延迟感。所以尽量将一些比较耗时的操作放在argcomplete.autocomplete() 语句后面,比如一些import语句,常常比较耗时,可以往后放。

希望这个程序能让你的Python开发变得舒服一些。

审核编辑:汤梓红

关键词:

相关新闻

资讯

南通启动优秀村(社区)党组织书记跟岗培育工作|重点聚焦
南通启动优秀村(社区)党组织书记跟岗培育工作|重点聚焦

学习苏州经验提升发展能力昨天,市优秀村(社区)党组......更多>

郑州市水利局党组书记王义民到陆浑灌区郑州市运行保障中心调研|世界滚动
郑州市水利局党组书记王义民到陆浑灌区郑州市运行保障中心调研|世界滚动

6月30日上午,市水利局党组书记王义民到陆浑灌区郑州......更多>

江苏采取五项举措提升管理精准性实效性 确保政府培训补贴花在“刀刃”上 环球动态
江苏采取五项举措提升管理精准性实效性 确保政府培训补贴花在“刀刃”上 环球动态

省人社厅、省财政厅近日集中公布全省2023年政府补贴性......更多>

美团落子泛娱乐_天天头条
美团落子泛娱乐_天天头条

图片来源@视觉中国据工信部发布的《泛娱乐产业白皮书......更多>

母亲优先,欧阳夏丹退出新闻-环球百事通
母亲优先,欧阳夏丹退出新闻-环球百事通

在阅读此文之前,麻烦您点击一下“关注”,既方便您进......更多>

有色锗、镓概念股开盘大涨,云南锗业等个股一字涨停 世界快看点
有色锗、镓概念股开盘大涨,云南锗业等个股一字涨停 世界快看点

App7月4日消息,开盘有色锗、镓概念股集体走高,云南......更多>

银河系位移,是重心追逐质心的结果?-当前速递
银河系位移,是重心追逐质心的结果?-当前速递

1、银河系的三维空间-是银河系三维物质天体压迫(扭曲)......更多>

一点也不能错!海关查获“问题地图”60张
一点也不能错!海关查获“问题地图”60张

近日,宁波海关所属宁波机场海关关员在快件渠道查获“......更多>

天天观热点:谈文字失语症 中青报谈文字失语症 基本情况讲解
天天观热点:谈文字失语症 中青报谈文字失语症 基本情况讲解

音频解说1、谈文字失语症2、中青报谈文字失语症3、以......更多>

望远山(对于望远山简单介绍)|全球新消息
望远山(对于望远山简单介绍)|全球新消息

聊聊一篇远山,对于望远山简单介绍的文章,网友们对这......更多>

关注

A股迎来七月开门红
A股迎来七月开门红
7月份首个交易日,A股三大股指放量集体收涨。截至收盘... 更多>
A股迎来七月开门红
7月份首个交易日,A股三大股指放量集体收涨。截至收盘... 更多>
河南2023单招院校本科 2023年河南省单招学校有哪些
今天,大学路小编为大家带来了河南2023单招院校本科20... 更多>
北京海淀发布深夜食堂消费地图,上图餐饮企业全部至少营业到24时
海淀区日前推出“深夜食堂消费地图”,集合了分布在特... 更多>
环球视点!郑煤集团公开选聘25家资产评估、审计、拍卖机构入选备选库 | 名单
7月4日,郑煤集团公告,经公司研究,通过郑州博威物资... 更多>
别沾!这种电子烟,吸了染毒瘾-聚看点
眼神迷离、动作迟缓,有的晕倒在马路上,有的会手抖,... 更多>
张成中、李世宏,履新职
中央批准,张成中跨省履新近日,中共中央批准:张成中... 更多>
马云经典句子
马云经典句子1、短暂的激情是不值钱的,只有持久的激... 更多>
核工业金华工程勘察院地质灾害勘察治理中心_关于核工业金华工程勘察院地质灾害勘察治理中心概略
1、核工业金华工程勘察院地质灾害勘察治理中心隶属于... 更多>
世界快看:私家车被侧翻搅拌车砸中,车顶几乎压扁!
7月3日清晨,热心市民向潮新闻爆料:杭州通盛路与德胜... 更多>
当前播报:灯光之外的夜经济
【专家学思】市井长巷,聚拢来是烟火,摊开来是人间。... 更多>
热消息:PTA原料估值偏高 或面临下行风险
【PTA原料估值偏高或面临下行风险】受国内成品油消费... 更多>
【环球新视野】选大学及专业也应有“大众点评网”
当下,正是公布高考成绩的时候,志愿填报成了考生和家... 更多>