Python 命令补全工具 argcomplete

ceee1e33a62d74d3ab6921e628c8e0df.png

(永久免费,扫码加入)

作者:YunfengWang

https://juejin.cn/post/7242676843987124279

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:

pip install argcomplete

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

activate-global-python-argcomplete

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

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

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

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

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

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

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

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

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

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

# 在ArgumentParser对象初始化前增加这两行
# PYTHON_ARGCOMPLETE_OK
import 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开发变得舒服一些。

参考资料

[1]

argcomplete: https://github.com/kislyuk/argcomplete

最后推荐一下我们的会员群,目前有风投天使投资人,猎头HR,抖音大V,情感博主,律师,心理咨询师,医疗销售,地产,保险,钢琴老师,运营商,企业咨询,跨境电商,建筑,互联网行业的数据分析师,后端开发,python测试等行业的同学加入。

微信咨询:coder_v5 (务必备注你的来意)

性价比超高的星球

目前星球430+人,专栏的内容秘籍已经更新了41篇,每天都有星球发布自己心得。只花一份钱可以学:

Python : python 入门课程44节+Django专栏9节+趣味实战案例

chatgpt :入门,进阶,趣味办公,高级课程

AI绘画:Mj的基础,入门,进阶,小红书玩法

如果你想学Python,又想学ChatGPT,又想学AI绘画,只想花一份钱欢迎加入我们星球会员群,还能认识很多牛人!

加入就送ChatGPT独立账号

993449669c2f7ef68fb99d4aae1684d6.jpeg

另外还送ChatGPT高级视频课程

原价99,现在免费送星球会员

c16943e33427131dd4f7a539a98400c2.jpeg

微信长按试看内容

三天内不满意可直接退款!!!

34f23b82027cd4e0f3275eb09c823351.png

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59688.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题中最不想看到的!(力扣报错)

有些时候总感觉自己逻辑是对的&#xff0c;但总有一些oj过不了。 个别特殊情况没有考虑到&#xff1b; 还有一些语法问题&#xff0c;一下报错可以对照一下&#xff1b; 1.超了内存 2.访问数组越界 3.初始化有误 4.递归基线错误或语法不对 5.整形越界 整理不足&#xff0c;有…

4.7力扣刷题记录

文章目录 1.旋转字符串--KMP2.二叉树前中后遍历的迭代写法 1.旋转字符串–KMP 题目地址 KMP字符串匹配算法&#xff0c;找出 p 0 . . . p j − 1 p_0...p_{j-1} p0​...pj−1​中前缀子串和后缀子串相同的最大值。 KMP算法&#xff0c;包括改进后的next数组 代码如下 class S…

力扣刷题插件

点击蓝色“力扣加加”关注我哟 加个“星标”&#xff0c;带你揭开算法的神秘面纱&#xff01; ❝ 这是力扣加加第「14」篇原创文章 ❞ 之前我做了一个视频&#xff0c; 介绍我的刷题浏览器扩展插件&#xff0c;视频地址&#xff1a;https://www.bilibili.com/video/BV1UK4y1x7z…

golang力扣刷题(一)

title: golang力扣刷题&#xff08;一&#xff09; date: 2021-10-14 21:03:50 categories: go tags:基础 力扣刷题&#xff08;一&#xff09; 力扣刷题 全部题目模块&#xff08;1&#xff5e;30&#xff09; 简单 山峰数组 符合下列属性的数组 arr 称为 山峰数组&#…

力扣刷题(二)

title: golang力扣刷题&#xff08;二&#xff09; date: 2021-11-04 10:06:27 categories: go tags:基础 力扣刷题&#xff08;二&#xff09; 力扣刷题 全部题目模块&#xff08;30&#xff5e;60&#xff09; 简单 搜索插入位置 给定一个排序数组和一个目标值&#xff…

Visual Studio无法登录,提示“我们无法添加此账户”解决办法

问题如下&#xff1a; 解决办法&#xff1a; 1.点击菜单栏 “帮助” —— “注册Visual Studio” 2.点击 “账户选项” 3. 如图&#xff0c;选择 “系统 Web 浏览器”&#xff0c;点击 “确定” 4. 返回上一页&#xff0c;点击 “登录” 5.软件会自动跳转到浏览器进行登录验证…

oracle创建完用户无法登陆

create user test identified by test;之后cmd登陆报如下错误 user TEST lacks CREATE SESSION privilege; logon denied 右键用户编辑分配如下权限&#xff0c;问题解决

Windows创建新账户进行登录

前言&#xff1a; 先谈谈为什么我会写这篇文章&#xff0c;既是讲述历史&#xff0c;也是描述场景。如相似可进行相关操作&#xff0c;如不同还望谨慎考虑后操作。 由于工作需要&#xff0c;每天都要开电脑&#xff0c;关电脑。麻烦的是&#xff0c;此电脑上有两个账号且称为A、…

postgres创建用户无法登录

CREATE USER testUser WITH PASSWORD 123456 GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO testUser 然后登录&#xff0c;结果验证失败&#xff0c;解决方案&#xff1a;testUser->testuser就可以了

王小川开怼李彦宏,国产AI大模型研发终于进入“骂街”阶段

经过一段时间的沉寂&#xff0c;因为ChatGPT的出现&#xff0c;国内互联网又恢复了往日的生机&#xff0c;连“激情互怼”的戏码也搬了出来。 在阔别舞台中心一年半后&#xff0c;搜狗前CEO王小川吹响了进军AI大模型的号角&#xff0c;成立百川智能&#xff0c;一口气接受了包括…

【AI新趋势期刊#2】AI发明计算机算法,如何给大模型排行,照片秒变二维码,视频一键动漫风

前言 每天都要浏览大量AI相关新闻&#xff0c;是不是感到信息量爆炸&#xff0c;有效信息少&#xff1f; 这么多新产品和新工具&#xff0c;到底哪些是真正是有价值的&#xff0c;哪些只是浮躁的一时热点&#xff1f; 想参与AI产品和工具的开发&#xff0c;从哪里能够获得大…

2022 年国产编程语言发展总结

近日&#xff0c;OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。凹语言作者柴树杉在报告中对开源数据库领域进行了解读&#xff0c;以下为原文。 2022 年 8 月&#xff0c;知名的科技视频制作者何同学发布了一个爆款视频《我做了一个自己打字的键盘》。视频中有一个…

华南理工大学与思迈特软件成立【人工智能联合实验室】

3月14日&#xff0c;华南理工大学—广州思迈特软件【人工智能联合实验室】正式揭牌&#xff0c;探索人工智能技术和商业智能产品的融合。广州市科学技术局高新技术处、广州市科学技术局成果与区域创新处、天河区科技工业和信息化局科技发展科、华南理工大学科学技术研究院、华南…

openinstall是什么?看看ChatGPT怎么说

openinstall是什么&#xff1f;openinstall拥有怎样的产品价值和市场地位&#xff1f;今天我们对话“全球最先进的人工智能语言模型”——ChatGPT&#xff0c;通过该超前的聊天机器人更客观全面地了解openinstall。 ChatGPT到底是什么&#xff1f;这是由硅谷人工智能实验室Ope…

论文综述降重小窍门

众所周知&#xff0c;综述最需要解决的问题其实是降重的问题。 毕竟综述就是以引用文献为主&#xff0c;重复率之高&#xff0c;实则惨不忍睹。下面就来看看笔者琢磨出来的「降重神掌」。 SCI降重办法梳理&#xff1a; SCI论文降重是论文发布前必经的步骤&#xff0c;想要顺利…

H5接入微信公众号方法(超详细)

微信官方文档 一、使用真实公众号并认证开发者&#xff0c;或者申请使用测试号 注意&#xff1a; 在微信开发者工具中调试&#xff0c;必须先成为公众号开发者&#xff0c;可以在微信公众号后台进行配置 位置&#xff1a; 公众号后台 > 设置与开发 > 开发者工具 > w…

公众号H5页面接入微信登录流程

起步 首先创建一个项目&#xff0c;我们采用uni-app来作为我们的前端框架 环境安装 全局安装vue-cli npm install -g vue/cli 创建uni-app 使用正式版&#xff08;对应HBuilderX最新正式版&#xff09; vue create -p dcloudio/uni-preset-vue my-project 在安装过程中…

海报的5种处理方式,让你的照片更吸睛

你知道海报应该怎么处理吗&#xff1f;照片是一个作品里最能吸引人注意的&#xff0c;我们可以试一试将照片处理成海报。那么你知道海报式的图片应该怎么处理吗&#xff1f;一起来看看吧&#xff01; 方法一&#xff1a;图形元素强调 如果照片本身的视觉冲击力不强&#xff0c…

AI技术在智能海报设计中的应用

背景 在视觉设计领域中&#xff0c;设计师们往往会因为一些简单需求付出相当多的时间&#xff0c;比如修改文案内容&#xff0c;设计简单的海报版式&#xff0c;针对不同机型、展位的多尺寸拓展等。这些工作需要耗费大量的时间、人力成本&#xff08;5~6张/人日&#xff09;&am…

vue3 antd项目实战——table表格(一文带你快速实现后台管理系统最常用的table表格)

零基础filter实现最简单的table表格 知识调用核心干货下期预告关键字模糊查找&#xff08;纯前端&#xff09;关键字模糊查找&#xff08;前后交互&#xff09; 知识调用 功能实现可能要用到的知识&#xff1a;vue3ant design vuets实战【ant-design-vue组件库引入】vue3项目实…