Python コマンド補完ツール argcomplete

ceee1e33a62d74d3ab6921e628c8e0df.png

(永久無料、参加するにはコードをスキャンしてください)

著者: 王雲峰

https://juejin.cn/post/7242676843987124279

1。概要

Python コマンドまたは Python コマンドライン ツールを使用する場合、補完がないことが問題の 1 つです。たとえば、python -m の後にパッケージ名を入力すると、プロンプトは表示されず、http サーバーを実行するたびに、http サービスのパッケージ名を検索する必要があります。さらに、pip や pipx などのコマンドにはプロンプトが表示されないため、使用するのがあまり便利ではありません。

私は argcomplete [1]ライブラリを偶然見つけました。Tab キーを押すと、Python コマンド ラインにオートコンプリートを追加できます。これは、単に Python を使用することによる成果です。

具体的には、argcomplete には次の特徴があります。

  • 公式サポートは bash と zsh の 2 つのシェルをサポートし、tcsh と Fish はサードパーティの貢献者によってサポートされます (申し訳ありませんが、ここでも Windows ユーザーは二級市民として扱われます)

  • Python コマンドと pip コマンドを完了できる

  • argparse によって解析されたサードパーティ パッケージの他のコマンドは、argcomplete のコードを数行追加するだけで自動的に完了できます。

以下では、既存のツールのオートコンプリートを有効にする方法と、独自の Python パッケージで argcomplete をサポートする方法について説明します。

2. Python と pip のオートコンプリートを有効にする

まず、pip コマンドを使用して argcomplete をインストールします。

pip install argcomplete

次に、次のステートメントを実行して、Python と pip のオートコンプリートを有効にします。

activate-global-python-argcomplete

シェルを再起動し、「pip」と入力してタブを押すと、すべてのコマンド オプションがリストされます。

3. 他のサードパーティライブラリのオートコンプリートを有効にする方法

一部のライブラリのコマンドライン プログラムはすでに argcomplete 補完をサポートしています。アクティブ化するには、次のコマンドを使用するだけです。

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

たとえば、pipx パッケージがインストールされ、コマンドライン プログラム pipx がシステムにインストールされ、pipx がすでに argcomplete をサポートしている場合、次のコマンドを使用してオートコンプリートをアクティブにすることができます。

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

アクティブ化した後、「pipx in」と入力して Tab キーを押すと、in で始まるすべての pipx コマンドがリストされ、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() ステートメントの後ろに配置するようにしてください。これらの操作は、多くの場合時間がかかるため、後から配置できます。

このプログラムがあなたの Python 開発を少しでも快適にしてくれることを願っています。

参考文献

[1]

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

最後に、私たちのメンバーグループをお勧めします。現在、ベンチャーキャピタルのエンジェル投資家、ヘッドハンターの人事担当者、Douyin big V、感情ブロガー、弁護士、心理カウンセラー、医療販売員、不動産、保険、ピアノ教師、オペレーター、ビジネスコンサルティング、越境電子商取引、建設、インターネット業界のデータアナリスト、バックエンド開発、Pythonテストなどの業界の学生が参加します。

WeChat コンサルテーション: coder_v5 (意図を必ずメモしてください)

コストパフォーマンスに優れたプラネット

現在、地球上には 430 人以上の人々がおり、コラムの内容には 41 件のチートが更新されており、毎日、惑星が自分の経験を公開しています。わずか 1 ドルで学ぶことができます。

Python: Python 入門コース 44 レッスン + Django コラム 9 レッスン + 興味深い実践事例

chatgpt: エントリー、上級、楽しいオフィス、上級コース

AI ペイント: Mj の基本、入門、上級、Xiaohongshu ゲームプレイ

Python、ChatGPT、AI ペイントを学びたい、そして少しお金をかけたいという方は、ぜひ Planet メンバー グループにご参加ください。たくさんの素晴らしい人々と出会うことができます。

ChatGPT 独立アカウントを送信するために参加します

993449669c2f7ef68fb99d4aae1684d6.jpeg

ChatGPT の高度なビデオ コースも送信します

元の価格は 99 ですが、現在はプラネット メンバーを無料で送信できます

c16943e33427131dd4f7a539a98400c2.jpeg

WeChatを長押ししてコンテンツを試してください

3日以内にご満足いただけない場合は、直接返金できます。

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行代码做了一个语音壁纸切换器天天看小姐姐!|

おすすめ

転載: blog.csdn.net/cainiao_python/article/details/131587762