<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 命令補全工具 argcomplete

          共 2397字,需瀏覽 5分鐘

           ·

          2023-09-07 19:10

          作者: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

          然后執(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()
          ...

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

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

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

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

          希望這個程序能讓你的Python開發(fā)變得舒服一些。

          參考資料

          [1]

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


             
             

          小碼哥新手《Python + Excel/Word/PPT一本通》正式上市了!書中詳細介紹了零基礎(chǔ)用Python實現(xiàn)辦公自動化的各方面知識,提高職場辦公效率,附贈PPT/源代碼/重點教學視頻講解和作者VIP一對一指導。


          內(nèi)容介紹《Python + Excel/Word/PPT 一本通》內(nèi)容介紹



          掃碼購買



          ▼點擊閱讀原文,了解本書詳情


          瀏覽 253
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91久久免费视频 | 美女免费在线被干 | 国产成人肏逼视频 | 国产在线成人免费视频色婷婷 | sese网站 |