Python中在腳本中引用其他文件函數(shù)的實(shí)現(xiàn)方法
在導(dǎo)入文件的時(shí)候,Python只搜索當(dāng)前腳本所在的目錄,加載(entry-point)入口腳本運(yùn)行目錄和sys.path中包含的路徑例如包的安裝地址。所以如果要在當(dāng)前腳本引用其他文件,除了將文件放在和腳本同一目錄下,還有以下幾種方法,
1. 將文件所在位置添加到sys.path中
import sys sys.path.insert(0, '/path/to/application/app/folder') # or sys.path.append('/path/to/application/app/folder') import file
2. 在文件目錄下新建__init__.py文件然后調(diào)用文件
from application.app.folder.file import func_name
init.py文件
a).init.py文件的作用
該文件的主要作用使初始化Python包。如果目錄下面包含了該文件,Python解釋器就會(huì)將該目錄當(dāng)做一個(gè)包,下一步就可以使用import語(yǔ)句在別的.py腳本中引用該目錄下的文件。一個(gè)標(biāo)準(zhǔn)Python模塊的結(jié)構(gòu)如下所示:
package/ __init__.py file.py file2.py subpackage/ __init__.py submodule1.py submodule2.py
b). __init__文件可以為空但可以用來(lái)建立對(duì)包的需求。一般來(lái)說(shuō)會(huì)在該文件中寫(xiě)那些類,函數(shù)等需要被導(dǎo)入到包水平,從而可以被方便的引用。比如:如果file.py文件中有一個(gè)File類,在init.py文件中啥都沒(méi)寫(xiě)時(shí)引用File類需要這樣操作:
from package.file import File
如果在__init__.py文件中將file導(dǎo)入包,那就在包水平可以直接引用File類:
# in your __init__.py from file import File # in your script from package import File
此外,還需要注意的一點(diǎn)是__init__.py文件中的all變量。
如果解釋器在__init__.py文件中觀察到了__all__變量,那么在運(yùn)行from package import *時(shí)就只會(huì)引入__all__變量中列出的那些模塊。
例如:如果想在上述結(jié)構(gòu)的只引入submodule1模塊,那么可以在subpackage/__init__.py文件中定義__all__ = ['submodule1'],當(dāng)引用subpackage時(shí)from subpackage import *就只引入了submodule1模塊。
3. 將文件所在目錄添加到python的環(huán)境變量
export PYTHONPATH=$HOME/pathToYourScripts/:#PYTHONPATH
以上就是小編為大家?guī)?lái)的Python中在腳本中引用其他文件函數(shù)的實(shí)現(xiàn)方法全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
python圖片由RGB空間轉(zhuǎn)成LAB空間的實(shí)現(xiàn)方式
這篇文章主要介紹了python圖片由RGB空間轉(zhuǎn)成LAB空間的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10利用Python?NumPy庫(kù)及Matplotlib庫(kù)繪制數(shù)學(xué)函數(shù)圖像
最近開(kāi)始學(xué)習(xí)數(shù)學(xué)了,有一些題目的函數(shù)圖像非常有特點(diǎn),下面這篇文章主要給大家介紹了關(guān)于利用Python?NumPy庫(kù)及Matplotlib庫(kù)繪制數(shù)學(xué)函數(shù)圖像的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Python二次規(guī)劃和線性規(guī)劃使用實(shí)例
這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12python 實(shí)現(xiàn)在txt指定行追加文本的方法
下面小編就為大家分享一篇python 實(shí)現(xiàn)在txt指定行追加文本的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Idea安裝python顯示無(wú)SDK問(wèn)題解決方案
這篇文章主要介紹了Idea安裝python顯示無(wú)SDK問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Python PySpider爬蟲(chóng)框架安裝使用教程
PySpider是一個(gè)Python編寫(xiě)的分布式網(wǎng)絡(luò)爬蟲(chóng)框架,它可以幫助開(kāi)發(fā)者快速構(gòu)建和部署爬蟲(chóng),并支持爬蟲(chóng)任務(wù)的分布式運(yùn)行,PySpider基于Twisted網(wǎng)絡(luò)框架和MongoDB數(shù)據(jù)庫(kù),具有高效、穩(wěn)定、易用等特點(diǎn),同時(shí)還提供了一套Web界面,可以方便地查看爬蟲(chóng)任務(wù)的運(yùn)行狀態(tài)和結(jié)果2023-11-11