Python中._pth文件的作用及說明
Python在遍歷已知的庫文件目錄過程中,如果見到一個(gè)._pth 文件,就會(huì)將文件中所記錄的路徑加入到 sys.path 設(shè)置中,于是 .pth 文件說指明的庫也就可以被 Python 運(yùn)行環(huán)境找到了。
python中有一個(gè).pth文件,該文件的用法是:
首先xxx._pth文件里面會(huì)書寫一些路徑,一行一個(gè)。
將xxx._pth文件放在特定位置,則可以讓python在加載模塊時(shí),讀取xxx._pth中指定的路徑。
在python中,一個(gè)擴(kuò)展名.py的文件就是一個(gè)模塊
1. 使用import語句導(dǎo)入模塊
import modulename 導(dǎo)入文件名為modulename.py的所有模塊
import modulename [as alias] 設(shè)置別名
備注:
使用import導(dǎo)入模塊后,每執(zhí)行一條import語句會(huì)創(chuàng)建一個(gè)新的命名空間,在該命名空間中執(zhí)行與.py文件相關(guān)的所有語句。
在執(zhí)行時(shí),需要在具體的變量、函數(shù)和類名前加上”模塊名.”。
2. 使用from....import語句導(dǎo)入模塊
- from modelname import member: 導(dǎo)入某個(gè)變量、函數(shù)或者類等。
- from modelname import *:導(dǎo)入全部定義
3. 模塊搜索順序
當(dāng)import 導(dǎo)入模塊之后,會(huì)按照以下順序進(jìn)行查找:
- 1)當(dāng)前目錄下查找
- 2)在PYTHONPATH下的每個(gè)目錄中查找
- 3)到python默認(rèn)安裝目錄下查找
上面的目錄可以通過sys的sys.path查看
import sysprint(sys.path)
輸出結(jié)果:
['E:PyProjectChapter13', 'E:PyProject', 'D:python3python38.zip', 'D:python3DLLs', 'D:python3lib', 'D:python3', 'E:PyProjectvenv', 'E:PyProjectvenvlibsite-packages', 'E:PyProjectvenvlibsite-packagessetuptools-40.8.0-py3.8.egg', 'E:PyProjectvenvlibsite-packagespip-19.0.3-py3.8.egg']
可通過以下3種方式將指定的目錄加到path中
- a. 臨時(shí)加入
import syssys.path.append('E:/')print(sys.path)
輸出結(jié)果
['E:PyProjectChapter13', 'E:PyProject', 'D:python3python38.zip', 'D:python3DLLs', 'D:python3lib', 'D:python3', 'E:PyProjectvenv', 'E:PyProjectvenvlibsite-packages', 'E:PyProjectvenvlibsite-packagessetuptools-40.8.0-py3.8.egg', 'E:PyProjectvenvlibsite-packagespip-19.0.3-py3.8.egg', 'E:/']
備注:只在當(dāng)前文件的窗口中有效,窗口關(guān)閉后即失效。
- b. 增加.pth文件
在python安裝目錄下的Libsite-packages中(我的在D:\python3\Libsite-packages),創(chuàng)建擴(kuò)展名為.pth的文件,文件名自定,在該文件中添加要導(dǎo)入的目錄
備注:
此種方法,需要重新打開要執(zhí)行的導(dǎo)入模塊的python文件,否則不生效。
只在當(dāng)前版本中有效。
- c. 在PYTHONPATH環(huán)境變量中添加
打開windows的“環(huán)境變量”對(duì)話框,若沒有PYTHONPATH則需要添加,否則雙擊PYTHONPATH變量,在彈出對(duì)話框的變量值文本中添加新的模塊目錄,目錄之前使用逗號(hào)分隔。
備注:
此種方法,需要重新打開要執(zhí)行的導(dǎo)入模塊的python文件,否則不生效。
只在當(dāng)前版本中有效。
4. 以主程序的形式執(zhí)行
christmastree.py文件內(nèi)容為:
pinetree = '我是一顆松樹' def fun_christmastree(): ''' 功能:一個(gè)夢 無返回值 ''' pinetree = '掛上彩燈、禮物.....我變成一顆圣誕樹' print(pinetree)
main.py文件內(nèi)容為:
import christmastreeprint('全局變量的值為: ', christmastree.pinetree)
第一次使用灰色框中的內(nèi)容:
輸出結(jié)果為:
下雪了.....=================開始做夢......==============掛上彩燈、禮物.....我變成一顆圣誕樹=================夢醒了......==============我身上落滿雪花. 我是一顆松樹-_-
第二次使用紅色框中的代碼:
輸出結(jié)果:
全局變量的值為: 我是一顆松樹
說明:
通俗的理解__name__ == '__main__':
假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');
在你自己眼中,你是你自己(__name__ == '__main__')。
python為動(dòng)態(tài)解釋型語言,也就是從腳本第一行開始運(yùn)行,沒有統(tǒng)一的入口。
每一個(gè)模塊(.py)都有一個(gè)__name__,當(dāng)模塊被直接執(zhí)行時(shí),此時(shí)__name__ '__main__';而被其他模塊導(dǎo)入時(shí),此時(shí)__name__為被導(dǎo)入的模塊名稱,程序執(zhí)行被導(dǎo)入模塊的所有代碼。
但更多時(shí)候只是希望執(zhí)行部分代碼,此時(shí)如紅框處表示,可以加上if __name__ == '__main__',作為文件的入口。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
教你用Python+selenium搭建自動(dòng)化測試環(huán)境
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著如何用Python+selenium搭建自動(dòng)化測試環(huán)境展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法
下面小編就為大家分享一篇Python3.6筆記之將程序運(yùn)行結(jié)果輸出到文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04用TensorFlow實(shí)現(xiàn)多類支持向量機(jī)的示例代碼
這篇文章主要介紹了用TensorFlow實(shí)現(xiàn)多類支持向量機(jī)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Python 異步之如何保護(hù)任務(wù)免于取消詳解
這篇文章主要為大家介紹了Python 異步之如何保護(hù)任務(wù)免于取消示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Python+Tkinter實(shí)現(xiàn)股票K線圖的繪制
K線圖又稱蠟燭圖,常用說法是“K線”。K線是以每個(gè)分析周期的開盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)繪制而成。本文將利用Python+Tkinter實(shí)現(xiàn)股票K線圖的繪制,需要的可以參考一下2022-08-08Python代碼實(shí)現(xiàn)刪除一個(gè)list里面重復(fù)元素的方法
今天小編就為大家分享一篇關(guān)于Python代碼實(shí)現(xiàn)刪除一個(gè)list里面重復(fù)元素的方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04Python編程中*args與**kwargs區(qū)別作用詳解
這篇文章主要介紹了Python編程中*args與**kwargs區(qū)別作用詳解2021-10-10