Python中._pth文件的作用及說明
Python在遍歷已知的庫文件目錄過程中,如果見到一個._pth 文件,就會將文件中所記錄的路徑加入到 sys.path 設置中,于是 .pth 文件說指明的庫也就可以被 Python 運行環(huán)境找到了。
python中有一個.pth文件,該文件的用法是:
首先xxx._pth文件里面會書寫一些路徑,一行一個。
將xxx._pth文件放在特定位置,則可以讓python在加載模塊時,讀取xxx._pth中指定的路徑。
在python中,一個擴展名.py的文件就是一個模塊
1. 使用import語句導入模塊
import modulename 導入文件名為modulename.py的所有模塊
import modulename [as alias] 設置別名
備注:
使用import導入模塊后,每執(zhí)行一條import語句會創(chuàng)建一個新的命名空間,在該命名空間中執(zhí)行與.py文件相關的所有語句。
在執(zhí)行時,需要在具體的變量、函數(shù)和類名前加上”模塊名.”。
2. 使用from....import語句導入模塊
- from modelname import member: 導入某個變量、函數(shù)或者類等。
- from modelname import *:導入全部定義
3. 模塊搜索順序
當import 導入模塊之后,會按照以下順序進行查找:
- 1)當前目錄下查找
- 2)在PYTHONPATH下的每個目錄中查找
- 3)到python默認安裝目錄下查找
上面的目錄可以通過sys的sys.path查看
import sysprint(sys.path)
輸出結果:
['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. 臨時加入
import syssys.path.append('E:/')print(sys.path)輸出結果
['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:/']
備注:只在當前文件的窗口中有效,窗口關閉后即失效。
- b. 增加.pth文件
在python安裝目錄下的Libsite-packages中(我的在D:\python3\Libsite-packages),創(chuàng)建擴展名為.pth的文件,文件名自定,在該文件中添加要導入的目錄
備注:
此種方法,需要重新打開要執(zhí)行的導入模塊的python文件,否則不生效。
只在當前版本中有效。
- c. 在PYTHONPATH環(huán)境變量中添加
打開windows的“環(huán)境變量”對話框,若沒有PYTHONPATH則需要添加,否則雙擊PYTHONPATH變量,在彈出對話框的變量值文本中添加新的模塊目錄,目錄之前使用逗號分隔。

備注:
此種方法,需要重新打開要執(zhí)行的導入模塊的python文件,否則不生效。
只在當前版本中有效。
4. 以主程序的形式執(zhí)行
christmastree.py文件內容為:
pinetree = '我是一顆松樹'
def fun_christmastree(): ''' 功能:一個夢 無返回值 '''
pinetree = '掛上彩燈、禮物.....我變成一顆圣誕樹'
print(pinetree)
main.py文件內容為:
import christmastreeprint('全局變量的值為: ', christmastree.pinetree)第一次使用灰色框中的內容:
輸出結果為:
下雪了.....=================開始做夢......==============掛上彩燈、禮物.....我變成一顆圣誕樹=================夢醒了......==============我身上落滿雪花. 我是一顆松樹-_-
第二次使用紅色框中的代碼:
輸出結果:
全局變量的值為: 我是一顆松樹
說明:
通俗的理解__name__ == '__main__':
假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');
在你自己眼中,你是你自己(__name__ == '__main__')。
python為動態(tài)解釋型語言,也就是從腳本第一行開始運行,沒有統(tǒng)一的入口。
每一個模塊(.py)都有一個__name__,當模塊被直接執(zhí)行時,此時__name__ '__main__';而被其他模塊導入時,此時__name__為被導入的模塊名稱,程序執(zhí)行被導入模塊的所有代碼。
但更多時候只是希望執(zhí)行部分代碼,此時如紅框處表示,可以加上if __name__ == '__main__',作為文件的入口。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
教你用Python+selenium搭建自動化測試環(huán)境
今天給大家?guī)淼氖顷P于Python的相關知識,文章圍繞著如何用Python+selenium搭建自動化測試環(huán)境展開,文中有非常詳細的介紹,需要的朋友可以參考下2021-06-06
用TensorFlow實現(xiàn)多類支持向量機的示例代碼
這篇文章主要介紹了用TensorFlow實現(xiàn)多類支持向量機的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Python+Tkinter實現(xiàn)股票K線圖的繪制
K線圖又稱蠟燭圖,常用說法是“K線”。K線是以每個分析周期的開盤價、最高價、最低價和收盤價繪制而成。本文將利用Python+Tkinter實現(xiàn)股票K線圖的繪制,需要的可以參考一下2022-08-08
Python代碼實現(xiàn)刪除一個list里面重復元素的方法
今天小編就為大家分享一篇關于Python代碼實現(xiàn)刪除一個list里面重復元素的方法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04
Python編程中*args與**kwargs區(qū)別作用詳解
這篇文章主要介紹了Python編程中*args與**kwargs區(qū)別作用詳解2021-10-10

