python如何導(dǎo)入自己的模塊
如何導(dǎo)入自己的模塊
在實(shí)際的編程生活當(dāng)中,我們除了會(huì)去import已經(jīng)存在的包外,當(dāng)然還會(huì)偶爾自定義一些模塊,然后來(lái)導(dǎo)入,其實(shí)一般而言,自定義的模塊也就是一系列的腳本,具體的,自己寫(xiě)好了腳本,然后導(dǎo)入,導(dǎo)入的情況分為以下情況:
1.自定義模塊與所需要調(diào)用自定義模塊的文件在同一文件夾下
這時(shí)的調(diào)用就較為簡(jiǎn)單了,直接導(dǎo)入即可

比如說(shuō)我想要在learnpandas中導(dǎo)入m1.py,只需要在learnpandas腳本開(kāi)頭聲明import m1.py即可
2.自定義模塊與所需要調(diào)用自定義模塊的文件不在同一文件夾下
其實(shí)這個(gè)的話(huà),如果不怕麻煩的話(huà)可以用1中的方法,把需要導(dǎo)入的文件一個(gè)一個(gè)手動(dòng)拖到當(dāng)前文件夾中,,,當(dāng)然這個(gè)方法時(shí)比較復(fù)雜的,尤其是要導(dǎo)入的文件較多的時(shí)候,,,,
這個(gè)時(shí)候有一個(gè)更聰明的方法
假設(shè)下圖是我們需要導(dǎo)入的文件目錄

在這種情況下,我們?cè)趂older中新建一個(gè)__init__.py文件,此時(shí)的folder不再是一個(gè)普通的文件夾,而是一個(gè)包 package

在這個(gè)時(shí)候,想導(dǎo)入哪一個(gè)文件的話(huà)就只需在文件開(kāi)頭import folder.filename即可(記得要先將自定義庫(kù)路徑添加到Python的庫(kù)路徑中)
3.找到本地庫(kù)的路徑
然后將文件拷進(jìn)去即可
4.手動(dòng)給python添加搜索路徑
具體做法是:
在python安裝目錄的\Lib\site-packages文件夾中建立一個(gè).pth文件,內(nèi)容為自己寫(xiě)的庫(kù)絕對(duì)路徑
- - - - - - - - - - - - - - - - - 分割線(xiàn)- - - - - - - - - - - - - - - - -
將自定義庫(kù)的路徑添加到Python的庫(kù)路徑中去,有如下兩種方法:
1. 動(dòng)態(tài)的添加庫(kù)路徑。在程序運(yùn)行過(guò)程中修改sys.path的值,添加自己的庫(kù)路徑
import sys sys.path.append(r'your_path')?
2. 在Python安裝目錄下的\Lib\site-packages文件夾中建立一個(gè).pth文件,內(nèi)容為自己寫(xiě)的庫(kù)路徑。
示例如下
E:\\work\\Python\\http
E:\\work\\Python\\logging
- - - - - - - - - - - - - - - - - 分割線(xiàn)- - - - - - - - - - - - - - - - -
在這里說(shuō)一句Python的包搜索路徑:
Python會(huì)在以下路徑中搜索它想要尋找的模塊:
1. 程序所在的文件夾
2. 標(biāo)準(zhǔn)庫(kù)的安裝路徑
3. 操作系統(tǒng)環(huán)境變量PYTHONPATH所包含的路徑
導(dǎo)入本地模塊報(bào)錯(cuò)的問(wèn)題
很多時(shí)候,我們?cè)趯?xiě)一個(gè)python項(xiàng)目時(shí),都會(huì)分模塊來(lái)寫(xiě),在一個(gè)模塊中導(dǎo)入自己寫(xiě)的另一個(gè)模塊,最后在寫(xiě)一個(gè)啟動(dòng)程序,但運(yùn)行啟動(dòng)程序時(shí)往往會(huì)報(bào)錯(cuò)說(shuō)找不到你寫(xiě)的模塊,對(duì)此,這里教大家一種通用且正規(guī)的python項(xiàng)目組織結(jié)構(gòu),基本都能解決這種找不到本地模塊的問(wèn)題。
以下圖為例說(shuō)明

首先是創(chuàng)建一個(gè)項(xiàng)目文件夾:myproject ,這里面包括啟動(dòng)文件start.py、README.md文件以及你的項(xiàng)目文件myproject文件夾。這就是基本的項(xiàng)目結(jié)構(gòu)。
這樣你就能在myproject文件夾里面的py文件里使用相對(duì)路徑導(dǎo)入其他文件夾下的模塊了。
其實(shí),Scrapy項(xiàng)目的目錄結(jié)構(gòu)也大致是這樣的,大家可以看看創(chuàng)建scrapy項(xiàng)目時(shí)的目錄結(jié)構(gòu)。
mytask.py

這里就很方便使用 “.” 和 “..” 來(lái)表示當(dāng)前路徑和上一級(jí)路徑了start.py

這里要注意,啟動(dòng)文件start.py中不能使用".“和”.."等來(lái)導(dǎo)入本地模塊,因?yàn)橹髂K(啟動(dòng)文件)不能使用相對(duì)導(dǎo)入。
最后,只要在命令行輸入python start.py就可以運(yùn)行程序了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
windows系統(tǒng)中python使用rar命令壓縮多個(gè)文件夾示例
這篇文章主要介紹了windows系統(tǒng)中python使用rar命令壓縮多個(gè)文件夾示例,需要的朋友可以參考下2014-05-05
對(duì)pandas中apply函數(shù)的用法詳解
下面小編就為大家分享一篇對(duì)pandas中apply函數(shù)的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
如何利用python制作時(shí)間戳轉(zhuǎn)換工具詳解
這篇文章主要給大家介紹了關(guān)于如何利用python制作時(shí)間戳轉(zhuǎn)換工具的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Python光學(xué)仿真理解Jones矩陣學(xué)習(xí)
這篇文章主要為大家介紹了Python光學(xué)仿真理解Jones矩陣的學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-10-10
python實(shí)現(xiàn)mysql的單引號(hào)字符串過(guò)濾方法
這篇文章主要介紹了python實(shí)現(xiàn)mysql的單引號(hào)字符串過(guò)濾方法,以一個(gè)較為詳細(xì)的實(shí)例形式分析了Python針對(duì)MySQL的操作及字符串過(guò)濾的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
Tensorflow 2.4 搭建單層和多層 Bi-LSTM 模型
這篇文章主要為大家介紹了Tensorflow 2.4 搭建單層 Bi-LSTM 模型和多層 Bi-LSTM 模型的實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01

