自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:Python工具腳本如何調(diào)用外層模塊

開發(fā) 前端
講到Python項目應(yīng)該如何正確組織代碼結(jié)構(gòu)。入口文件應(yīng)該在最外面,調(diào)用關(guān)系應(yīng)該是從外向內(nèi)調(diào)用。絕對不能學Java,從一個很深層的文件夾里面往外調(diào)用。

講到Python項目應(yīng)該如何正確組織代碼結(jié)構(gòu)。入口文件應(yīng)該在最外面,調(diào)用關(guān)系應(yīng)該是從外向內(nèi)調(diào)用。絕對不能學Java,從一個很深層的文件夾里面往外調(diào)用。

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

圖片圖片

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

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

圖片圖片

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

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

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

from models.aa import i_am_func


i_am_func()

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

首先我們進入tools文件夾運行,顯然會報錯,如下圖所示:

圖片圖片

接下來,我們在項目根目錄下面運行,也會報錯:

圖片圖片

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

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

python -m tools.test

如下圖所示:

圖片圖片

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

圖片圖片

要運行second.py,那么命令就寫成:

python -m tools.deep.folder.second

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

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

未聞Code Telegram Channel開通了!每天都有各種開發(fā)小技巧更新,速來??!

責任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2021-03-12 21:19:15

Python鏈式調(diào)用

2021-09-13 20:38:47

Python鏈式調(diào)用

2021-07-27 21:32:57

Python 延遲調(diào)用

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2025-04-27 07:57:50

大模型工具JSON

2021-10-15 21:08:31

PandasExcel對象

2021-04-12 21:19:01

PythonMakefile項目

2020-05-19 13:55:38

Python加密密碼

2022-06-09 21:34:41

Python代碼函數(shù)

2023-10-28 12:14:35

爬蟲JavaScriptObject

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2022-03-12 20:38:14

網(wǎng)頁Python測試

2024-11-11 00:38:13

Mypy靜態(tài)類型

2021-05-08 19:33:51

移除字符零寬

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

2023-10-29 09:16:49

代碼安全命令

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2020-12-11 06:30:00

工具分組DataFrame
點贊
收藏

51CTO技術(shù)棧公眾號