1.1 python模塊搜索路徑
1.1.1 sys.path
描述
python通過模塊搜索路徑找到模塊文件進行導入。
順序 | 路徑 |
---|---|
1 | 程序主目錄 |
2 | PYTHONPATH目錄(若有),用于路徑拓展 |
3 | 標準庫目錄 |
4 | .pth文件(若有),用于路徑拓展 |
程序啟動時,按上面順序將這4個路徑存放sys.path列表,導入并搜索模塊時,根據從左至右的順序搜索sys.path。
NO | 類型 | 描述 |
---|---|---|
1 | sys.path列表 | 程序運行時可以動態更新sys.path進行修改模塊搜索路徑。 程序結束后,更新的sys.path會失效。 |
2 | PYTHONPATH和.pth | 通過PYTHONPATH和.pth定制模塊搜索路徑。 程序結束后,仍然存在本地配置。 |
文件內容
E:\\documents\\F盤\\testsyspath.py
# 打開cmd 執行下面示例
import sys,os
def testpath():
print("run:{}".format(os.path.abspath(__file__)))
print("__name__:{}".format(__name__))
curpath="解釋器交互模式執行" if sys.path[0]=='' else "頂層文件模式執行"
print("{}的sys.path為:{}".format(curpath,sys.path))
sys.path.append("E:\\\\mysitepack")
print("添加路徑后{}的sys.path為:{}".format(curpath,sys.path))
if __name__ == '__main__':
testpath()
示例
# 打開cmd 執行下面示例
E:\\documents\\F盤>python
>>> import testsyspath
>>> testsyspath.testpath()
run:E:\\documents\\F盤\\testsyspath.py
__name__:testsyspath
# 交互模式下,程序目錄為空,即解釋器當前路徑
解釋器交互模式執行的sys.path為:['', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages']
# sys.path.append 動態添加搜索路徑
添加路徑后解釋器交互模式執行的sys.path為:['', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages', 'E:\\\\mysitepack']
>>> exit()
# 文件模式下,程序目錄為py執行路徑
E:\\documents\\F盤>python testsyspath.py
run:E:\\documents\\F盤\\testsyspath.py
__name__:__main__
頂層文件模式執行的sys.path為:['E:\\\\documents\\\\F盤', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages']
添加路徑后頂層文件模式執行的sys.path為:['E:\\\\documents\\\\F盤', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages', 'E:\\\\mysitepack']
1.2 python包模塊別名
python通過as關鍵字給模塊或模塊屬性取別名,達到簡寫和避免名字沖突的效果。
1.2.1 as別名
用法
import module1 [as identifier1] (, module2 [as identifier2])
from module import var1 ([as iden1](,var2 [as iden2]))
import dir1.dir2.mod as identifier1
from dir1.dir2 import mod as identifier1
from dir1.dir2.mod import x as identifier1
描述
as identifier1:
NO | 描述 |
---|---|
1 | 通過as給模塊或屬性取別名,之后通過別名訪問模塊對象屬性。 |
2 | 用as后,不可通過 “原模塊原名”訪問模塊屬性,不可訪問“原屬性名”。 |
3 | 用as后,模塊搜索路徑存放的鍵為模塊原名,而非別名。 |
4 | 用as后,通過字符串方式訪問的用“原名”,通過變量名方式訪問的用“別名”。 |
文件內容
E:\\documents\\F盤\\testas.py
import os
tyxt='梯閱線條'
def testas():
print("run:{}".format(os.path.abspath(__file__)))
print("__name__:{}".format(__name__))
示例
# 打開cmd 執行下面示例
E:\\documents\\F盤>python
# as 模塊取別名
>>> import testas as tas
# 模塊別名訪問屬性
>>> tas.tyxt
'梯閱線條'
>>> tas.testas()
run:E:\\documents\\F盤\\testas.py
__name__:testas
# 原模塊名可訪問
>>> testas.tyxt
Traceback (most recent call last):
File "" , line 1, in
NameError: name 'testas' is not defined
# as 屬性取別名
>>> from testas import testas as ts
# 屬性別名可訪問
>>> ts()
run:E:\\documents\\F盤\\testas.py
__name__:testas
# 原屬性名不可訪問
>>> testas()
Traceback (most recent call last):
File "" , line 1, in
NameError: name 'testas' is not defined
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
模塊
+關注
關注
7文章
2735瀏覽量
47755 -
AS
+關注
關注
0文章
27瀏覽量
26138 -
python
+關注
關注
56文章
4807瀏覽量
85040
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web2/M00/83/B6/wKgaomRl7GyADr75AABvpdVngrw785.png)
用python編寫一個高效搜索代碼工具
用python編寫一個高效搜索代碼工具大多碼農在linux環境下使用grep+關鍵詞的命令搜索自己想要的代碼或者log文件。今天介紹用python如何編寫一個更強大的
發表于 01-16 15:24
有關Python的解析
搜了很多歷年藍橋杯真題解答,大多都是Java,C++,C這些語言編寫的代碼解析。Python解析的幾乎,甚至可以說沒有。而當下Python又這么火熱,藍橋杯也出了
發表于 07-29 08:39
基于Dijkstra的PKI交叉認證路徑搜索算法
針對網狀型公鑰基礎設施(PKI)信任模型認證路徑的不確定性,提出一種基于Dijkstra 算法的PKI 交叉認證路徑搜索算法。該算法根據PKI 系統中配置的認證路徑
發表于 03-20 15:59
?20次下載
數據科學的完整學習路徑(Python版)
方了。本文的目的就是給數據分析方面的Python新手提供一個完整的學習路徑。該路徑提供了你需要學習的利用Python進行數據分析的所有步驟的完整概述。如果你已經有一些相關的背景知識,或
發表于 01-25 17:03
?0次下載
Python中BeatifulSoap解析HTML的三個實用小技巧詳解
BeautifulSoup是Python爬蟲應用解析Html的利器,是Python三方模塊bs4中提供的進行HTML解析的類,可以認為是一個
python包模塊相對導入from和import介紹1
無包文件**init**.py下,python通過import module導入模塊時,先搜索程序運行主目錄。
程序運行主目錄為運行的py文件所在目錄,而不是執行python.e
簡述python包模塊import和from及all
python指定導入目錄路徑,稱為包導入。
通過import和from導入包模塊。
通過**all**指定導入的模塊和導入的模塊
TSMaster小功能—Python小程序如何導入外部庫
今天給大家介紹TSMaster功能之Python小程序如何導入外部庫。通過在TSMaster默認的解析器路徑下導入外部庫來介紹,以便我們去使用Python外部庫。TSMaster默認
![TSMaster小功能—<b class='flag-5'>Python</b>小程序如何導入外部庫](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
查看python安裝路徑的方法
Python是一種高級編程語言,常用于開發Web應用、數據分析、人工智能等領域。在使用Python進行開發之前,我們需要先安裝Python解釋器,并了解Python解釋器的安裝
評論