python導(dǎo)入其他目錄下模塊的四種情況
關(guān)鍵:被導(dǎo)入模塊所在文件夾的路徑需要出現(xiàn)在sys.path中
python中從其他目錄中導(dǎo)入模塊的關(guān)鍵是:系統(tǒng)(sys)能夠找到通向模塊文件的路徑,即,sys.path中包含對(duì)應(yīng)模塊文件的路徑。
python中導(dǎo)入其他目錄下的模塊,本文主要介紹以下四種情況:
- 從當(dāng)前目錄下導(dǎo)入模塊
- 從當(dāng)前目錄的子目錄中導(dǎo)入模塊
- 從當(dāng)前目錄的父目錄導(dǎo)入模塊
- 通用:從任意文件夾路徑下導(dǎo)入模塊。
1. 從當(dāng)前目錄導(dǎo)入模塊
這種情況的程序結(jié)構(gòu)如下:
--base_dir
|--module1.py
def func1()
def func2()
|--module2.py
要想在module2.py中導(dǎo)入module1.py中的func1,func2函數(shù),直接使用以下命令即可。
# 在module2.py中 from module1 import func1,func2
2. 從當(dāng)前目錄的子目錄中導(dǎo)入模塊
程序結(jié)構(gòu)如下所示:
--base_dir
|--son_dir
||--module1.py
def func1()
def func2()
|--module2.py
此時(shí),要想在module2.py中導(dǎo)入module1.py中的func1,func2函數(shù),需要在module1.py所在的文件夾son_dir下添加一個(gè)__init__.py文件,只有這樣,son_dir才會(huì)成為一個(gè)package,否則不能調(diào)用。
此時(shí),程序結(jié)構(gòu)如下:
--base_dir
|--son_dir
||--__init__.py # 新增加的文件,可以為空,使son_dir變成可調(diào)用的package
||--module1.py
def func1()
def func2()
|--module2.py
然后,就可以在module2.py中以以下形式引入module1.py中的文件。
# 在module2.py中 from son_dir.module1 import func1,func2
3. 從父目錄中導(dǎo)入模塊
程序結(jié)構(gòu)示意圖如下:
--base_dir
|--module1.py
def func1()
def func2()
|--son_dir
||--module2.py
我們想在 son_dir.module2.py中導(dǎo)入base_dir.module1.py中的func1,func2函數(shù)。
此時(shí)我們需要進(jìn)行如下處理:
# 腳本 mudule2.py 中 import sys sys.path.append("..") # 將父目錄放入系統(tǒng)路徑中,不需要再base_dir中增加__init__.py腳本。 # 備注:sys.path.append中的內(nèi)容也可以是module1.py 所在文件夾的全局路徑 from module1 import func1,func2
4. 通用:從任意文件夾路徑下導(dǎo)入模塊
如以上分析,python中導(dǎo)入某個(gè)模塊,只需要該模塊所在的文件夾路徑在sys.path中即可,所以,我們可以用以下通用方式處理模塊導(dǎo)入的問(wèn)題。
程序結(jié)構(gòu)示意圖:
--any_dir1 # 任意文件夾位置
|--mudule1.py
def func1()
def func2()
--any_dir2 # 任意文件夾位置
|--module2.py
我們想在module2.py中導(dǎo)入module1中的func1,func2,與情況3相似,我們可以用以下處理:
# 腳本 mudule2.py 中 import sys sys.path.append("/global/path/to/any_dir1") # 將module1所在的文件夾路徑放入sys.path中 from module1 import func1,func2
參考:https://blog.csdn.net/zhang89xiao/article/details/53521366
總結(jié)
到此這篇關(guān)于python導(dǎo)入其他目錄下模塊的四種情況的文章就介紹到這了,更多相關(guān)python導(dǎo)入其他目錄模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python網(wǎng)絡(luò)編程之讀取網(wǎng)站根目錄實(shí)例
這篇文章主要介紹了python網(wǎng)絡(luò)編程之讀取網(wǎng)站根目錄實(shí)例,以quux.org站根目錄為例進(jìn)行了實(shí)例分析,代碼簡(jiǎn)單易懂,需要的朋友可以參考下2014-09-09Python詳解如何動(dòng)態(tài)給對(duì)象增加屬性和方法
python是動(dòng)態(tài)語(yǔ)?,動(dòng)態(tài)編程語(yǔ)?是?級(jí)程序設(shè)計(jì)語(yǔ)?的?個(gè)類別,在計(jì)算機(jī)科學(xué)領(lǐng)域已被?泛應(yīng)?。它是?類在?運(yùn)?時(shí)可以改變其結(jié)構(gòu)?的語(yǔ)??:例如新的函數(shù)、對(duì)象、甚?代碼可以被引進(jìn),已有的函數(shù)可以被刪除或是其他結(jié)構(gòu)上的變化2022-07-07matplotlib畫混淆矩陣與正確率曲線的實(shí)例代碼
混淆矩陣也稱誤差矩陣,是表示精度評(píng)價(jià)的一種標(biāo)準(zhǔn)格式,下面這篇文章主要給大家介紹了關(guān)于matplotlib畫混淆矩陣與正確率曲線的相關(guān)資料,需要的朋友可以參考下2021-06-06Python+tkinter實(shí)現(xiàn)高清圖片保存
作為愛(ài)玩電腦的你是不是也需要經(jīng)常更換一下自己的電腦壁紙呢?但是在網(wǎng)上有很多心儀的圖片想要保存下來(lái),如果一張張的去保存那效率又低。所以本文用Python寫一個(gè)保存圖片的功能,把我們的圖片給保存到我們的電腦,需要的可以參考一下2022-03-03python學(xué)習(xí)與數(shù)據(jù)挖掘應(yīng)知應(yīng)會(huì)的十大終端命令
今天我們將介紹一些基本的數(shù)據(jù)收集、探索和聚合—所有這些都是通過(guò)shell完成的。如果你使用的是Linux或Mac,那么接下來(lái)就不會(huì)有任何問(wèn)題,但是Windows用戶應(yīng)該在繼續(xù)之前下載一個(gè)終端仿真器2021-11-11python隊(duì)列通信:rabbitMQ的使用(實(shí)例講解)
下面小編就為大家分享一篇python隊(duì)列通信:rabbitMQ的使用(實(shí)例講解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Python之DataFrame輸出為csv\txt\xlsx文件問(wèn)題
這篇文章主要介紹了Python之DataFrame輸出為csv\txt\xlsx文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Python地理地圖可視化folium標(biāo)記點(diǎn)彈窗設(shè)置代碼(推薦)
這篇文章主要介紹了Python地理地圖可視化folium標(biāo)記點(diǎn)彈窗設(shè)置,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Python 判斷 有向圖 是否有環(huán)的實(shí)例講解
下面小編就為大家分享一篇Python 判斷 有向圖 是否有環(huán)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02Python PyMySQL操作MySQL數(shù)據(jù)庫(kù)的方法詳解
PyMySQL是一個(gè)用于Python編程語(yǔ)言的純Python MySQL客戶端庫(kù),它遵循Python標(biāo)準(zhǔn)DB API接口,并提供了許多方便的功能,本文就來(lái)和大家簡(jiǎn)單介紹一下吧2023-05-05