<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工具腳本如何調(diào)用外層模塊

          共 1469字,需瀏覽 3分鐘

           ·

          2024-04-11 00:19

          Python客棧 設(shè)為“星標(biāo)? 第一時(shí)間收到最新資訊


          我三年前寫(xiě)過(guò)一篇文章:《小問(wèn)題大隱患:如何正確設(shè)置 Python 項(xiàng)目的入口文件?》。講到Python項(xiàng)目應(yīng)該如何正確組織代碼結(jié)構(gòu)。入口文件應(yīng)該在最外面,調(diào)用關(guān)系應(yīng)該是從外向內(nèi)調(diào)用。絕對(duì)不能學(xué)Java,從一個(gè)很深層的文件夾里面往外調(diào)用。

          不過(guò)我在這篇文章的最后,也提到了一種例外情況,那就是工具腳本不受這個(gè)規(guī)則的限制。如下圖所示。

          edd49d59f18c10b0f6444b9441ea65c8.webp

          今天有同學(xué)在問(wèn)我,這種情況應(yīng)該怎么調(diào)用,才能讓remove_outdated_data.py正確導(dǎo)入models里面的模塊。我們就來(lái)說(shuō)明一下。

          首先,我們來(lái)創(chuàng)建一個(gè)示例程序,結(jié)構(gòu)如下圖所示:

          2b19a28fed787ad461dd3e6e0b3f6b8b.webp

          其中,aa.py文件的內(nèi)容為:

                def i_am_func():
              print('我是一個(gè)函數(shù)')

          test.py文件的內(nèi)容為:

                from models.aa import i_am_func


          i_am_func()

          那么,不修改任何環(huán)境變量,也不修改sys.path的情況下,我應(yīng)該怎么運(yùn)行test.py,才能讓它正確調(diào)用i_am_func函數(shù)?

          首先我們進(jìn)入tools文件夾運(yùn)行,顯然會(huì)報(bào)錯(cuò),如下圖所示:

          ab546725e2022c8fb3d6ff6c640ac57b.webp

          接下來(lái),我們?cè)陧?xiàng)目根目錄下面運(yùn)行,也會(huì)報(bào)錯(cuò):

          98678fac15a40a6cc558814e44313a8f.webp

          那應(yīng)該怎么辦呢?難道必須加環(huán)境變量或者改sys.path

          其實(shí),Python已經(jīng)自帶了正確運(yùn)行工具腳本的方法,就是-m參數(shù)。我們只需要在項(xiàng)目根目錄執(zhí)行下面這個(gè)命令就可以了:

                python -m tools.test

          如下圖所示:

          4a8ec81fc1393ec5610ba4db1c1afee0.webp

          如果工具腳本在很深的文件夾里面,那么路徑只需要使用點(diǎn)分割就可以了。例如下面的文件結(jié)構(gòu):

          c152b24faf0f6e6f10ac8f517489b209.webp要運(yùn)行second.py,那么命令就寫(xiě)成:

                python -m tools.deep.folder.second

          如果你的工具腳本有參數(shù),也可以正常添加,例如:

                python -m tools.deep.folder.second args1 args2


                                                  往期回顧
                                                      
                                                      
                                                        

          1、 2024年:捂緊口袋,別瞎折騰

          2、終于!淘寶能用微信支付了:不跳轉(zhuǎn),直接付!

          3、推薦 3 個(gè)火火火火火的 GitHub 項(xiàng)目

          4、 這個(gè)瀏覽器,想必只有開(kāi)發(fā)者才會(huì)用吧?

          5、拍視頻每月花 2800 萬(wàn),B 站新來(lái)的 UP 主有“億”點(diǎn)強(qiáng)

                                                        


                                                    

          點(diǎn)擊關(guān)注公眾號(hào),閱讀更多精彩內(nèi)容

          7002fd46465ba6cb1834ff7ff3b855ff.webp

          瀏覽 64
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  亚洲一级免费黄色电影 | 美女福利导航 | 一本色道久久加勒比精品 | 最近日韩中文字幕高清视频 | 免费人成视频网站 |