Python工具腳本調(diào)用外層模塊的操作方法
入口文件應(yīng)該在最外面,調(diào)用關(guān)系應(yīng)該是從外向內(nèi)調(diào)用。絕對(duì)不能學(xué)Java,從一個(gè)很深層的文件夾里面往外調(diào)用。
不過(guò)我在這篇文章的最后,也提到了一種例外情況,那就是工具腳本不受這個(gè)規(guī)則的限制。如下圖所示。
今天有同學(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)如下圖所示:
其中,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ò),如下圖所示:
接下來(lái),我們?cè)陧?xiàng)目根目錄下面運(yùn)行,也會(huì)報(bào)錯(cuò):
那應(yīng)該怎么辦呢?難道必須加環(huán)境變量或者改sys.path
?
其實(shí),Python已經(jīng)自帶了正確運(yùn)行工具腳本的方法,就是-m
參數(shù)。我們只需要在項(xiàng)目根目錄
執(zhí)行下面這個(gè)命令就可以了:
python -m tools.test
如下圖所示:
如果工具腳本在很深的文件夾里面,那么路徑只需要使用點(diǎn)分割就可以了。例如下面的文件結(jié)構(gòu):
要運(yùn)行second.py
,那么命令就寫成:
python -m tools.deep.folder.second
如果你的工具腳本有參數(shù),也可以正常添加,例如:
python -m tools.deep.folder.second args1 args2
到此這篇關(guān)于Python工具腳本如何調(diào)用外層模塊的文章就介紹到這了,更多相關(guān)Python調(diào)用外層模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)內(nèi)存監(jiān)控系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)內(nèi)存監(jiān)控系統(tǒng),通過(guò)系統(tǒng)命令或操作系統(tǒng)文件獲取到內(nèi)存信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Python3解釋器知識(shí)點(diǎn)總結(jié)
在本篇內(nèi)容中小編給大家總結(jié)了關(guān)于Python3解釋器的用法以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-02-02Python3.9.0 a1安裝pygame出錯(cuò)解決全過(guò)程(小結(jié))
這篇文章主要介紹了Python3.9.0 a1安裝pygame出錯(cuò)解決全過(guò)程(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02利用Python實(shí)現(xiàn)問(wèn)卷星自動(dòng)填寫的超詳細(xì)教程
問(wèn)卷星已經(jīng)成為收集問(wèn)卷的一個(gè)很重要的工具,有時(shí)可以用來(lái)報(bào)名參加活動(dòng),有時(shí)可以用來(lái)收集某些領(lǐng)域相關(guān)的情況,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)問(wèn)卷星自動(dòng)填寫的超詳細(xì)教程,需要的朋友可以參考下2023-06-06