圖文詳解Python如何導(dǎo)入自己編寫(xiě)的py文件
一. 想要實(shí)現(xiàn)的效果
新建文件夾將自編模塊集中管理
可在其它py文件內(nèi)import 自編模塊,像import第三方庫(kù)一樣
二. 實(shí)現(xiàn)的方法
步驟1:將編號(hào)的模塊 *.py放入文件夾,在我計(jì)算機(jī)中是:F:\OneDrive\PythonPrj\_myFunction

步驟2:新建用戶(hù)/系統(tǒng)環(huán)境變量。
變量名:PYTHONPATH
變量值:文件夾路徑

然后就可以實(shí)現(xiàn)想要的效果了,以下三種import方式均可。

這樣做的原理是,Python解釋器會(huì)去以下三個(gè)位置找import的模塊:
- 當(dāng)前文件所在目錄
- 環(huán)境變量PYTHONPATH指定的目錄
- Python 默認(rèn)的安裝目錄
Python中sys.path變量記錄了解釋器可Import模塊的位置,如下圖所示:

所以,可通過(guò)操作sys.path變量告訴解釋器去哪里找模塊,代碼如下:

sys.path是個(gè)列表,這里用append將一個(gè)路徑加到了列表中,然后此路徑下的模塊a就能成功導(dǎo)入了。這種方法多寫(xiě)了兩行代碼,不方便,所以只適合臨時(shí)用一下。
三. 進(jìn)階用法
如果自編的模塊多了,或者想給自編模塊加上說(shuō)明文檔的話,還是希望將每個(gè)自編模塊單獨(dú)存放在一個(gè)文件夾,以便于管理維護(hù)。像這樣:

然后在文件夾(如myPackage1)內(nèi)存放自編模塊。

這時(shí)想導(dǎo)入模塊就要按照以下寫(xiě)法:

這是一級(jí)子文件夾的寫(xiě)法,更多級(jí)文件夾可以一直點(diǎn)(.)下去。當(dāng)然,一般也就會(huì)用到一級(jí)子文件夾,二級(jí)幾乎都不會(huì)使用。
四. 使用_init_.py控制導(dǎo)入某文件夾時(shí)執(zhí)行的操作
上述的導(dǎo)入方式一次只能導(dǎo)入一個(gè)文件夾里的一個(gè)模塊,如果想控制一次導(dǎo)入文件夾中的所有模塊,而不用一個(gè)個(gè)用點(diǎn)號(hào)去點(diǎn),我們需要用到_init_.py文件。
此文件需要與模塊在同一目錄中,如下圖所示,Python中將擁有_init_.py文件的文件夾稱(chēng)為包。

每次import myPackage1時(shí),_init.py會(huì)自動(dòng)執(zhí)行一次,所以也稱(chēng)為包初始化文件。利用這個(gè)特性,我們可以在此文件中寫(xiě)一些代碼,用來(lái)控制導(dǎo)入文件夾myPackage1時(shí)的行為。像這樣寫(xiě)這個(gè)初始化文件:
import sys# 將__init__.py文件所在目錄加入Python搜索目錄中,否則會(huì)提示找不到myModule1sys.path.append(__file__[:-12])import myModule1
然后,在其它py文件中導(dǎo)入myPackage1,因?yàn)開(kāi)init_.py文件自動(dòng)執(zhí)行,myModule1文件會(huì)自動(dòng)被導(dǎo)入。驗(yàn)證一下:

當(dāng)然,即使在包初始化文件里寫(xiě)了import 某模塊,還是可以用 import myPackage1.myModule 這樣的方式來(lái)導(dǎo)入。包初始化文件不會(huì)對(duì)原本的導(dǎo)入方式有任何影響。
另一種寫(xiě)法,可以一次導(dǎo)入包中某模塊中定義的函數(shù)和屬性,像這樣寫(xiě)_init_.py文件:
import sys # 將__init__.py文件所在目錄加入Python搜索目錄中,否則會(huì)提示找不到myModule1 sys.path.append(__file__[:-12]) import myModule1
然后,在其它py文件導(dǎo)入時(shí)這么寫(xiě):

可見(jiàn),可以直接使用myModule1中的定義的函數(shù)了。
總結(jié)一下,導(dǎo)入模塊的寫(xiě)法與_init_.py的寫(xiě)法需要保持一致,即要么都import 包名,要么都from 包名 import *,這樣才可達(dá)到想要的效果。
我對(duì)Python理解還不夠深入,僅將摸索出來(lái)的一些規(guī)律分享出來(lái)。
總結(jié)
到此這篇關(guān)于Python如何導(dǎo)入自己編寫(xiě)的py文件的文章就介紹到這了,更多相關(guān)Python導(dǎo)入編寫(xiě)的py文件內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信