0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解析python模塊搜索路徑和別名as

jf_78858299 ? 來(lái)源:梯閱線條 ? 作者:小梯子 ? 2023-02-21 10:53 ? 次閱讀

1.1 python模塊搜索路徑

1.1.1 sys.path

描述

python通過(guò)模塊搜索路徑找到模塊文件進(jìn)行導(dǎo)入。

順序 路徑
1 程序主目錄
2 PYTHONPATH目錄(若有),用于路徑拓展
3 標(biāo)準(zhǔn)庫(kù)目錄
4 .pth文件(若有),用于路徑拓展

程序啟動(dòng)時(shí),按上面順序?qū)⑦@4個(gè)路徑存放sys.path列表,導(dǎo)入并搜索模塊時(shí),根據(jù)從左至右的順序搜索sys.path。

NO 類型 描述
1 sys.path列表 程序運(yùn)行時(shí)可以動(dòng)態(tài)更新sys.path進(jìn)行修改模塊搜索路徑。 程序結(jié)束后,更新的sys.path會(huì)失效。
2 PYTHONPATH和.pth 通過(guò)PYTHONPATH和.pth定制模塊搜索路徑。 程序結(jié)束后,仍然存在本地配置。

文件內(nèi)容

E:\\documents\\F盤\\testsyspath.py

# 打開(kāi)cmd 執(zhí)行下面示例
import sys,os

def testpath():
   print("run:{}".format(os.path.abspath(__file__)))
   print("__name__:{}".format(__name__))
   curpath="解釋器交互模式執(zhí)行" if sys.path[0]=='' else "頂層文件模式執(zhí)行"
   print("{}的sys.path為:{}".format(curpath,sys.path))
   sys.path.append("E:\\\\mysitepack")
   print("添加路徑后{}的sys.path為:{}".format(curpath,sys.path))
if __name__ == '__main__':
   testpath()

示例

# 打開(kāi)cmd 執(zhí)行下面示例
E:\\documents\\F盤>python
>>> import testsyspath
>>> testsyspath.testpath()
run:E:\\documents\\F盤\\testsyspath.py
__name__:testsyspath
# 交互模式下,程序目錄為空,即解釋器當(dāng)前路徑
解釋器交互模式執(zhí)行的sys.path為:['', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages']
# sys.path.append 動(dòng)態(tài)添加搜索路徑
添加路徑后解釋器交互模式執(zhí)行的sys.path為:['', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages', 'E:\\\\mysitepack']
>>> exit()
# 文件模式下,程序目錄為py執(zhí)行路徑
E:\\documents\\F盤>python testsyspath.py
run:E:\\documents\\F盤\\testsyspath.py
__name__:__main__
頂層文件模式執(zhí)行的sys.path為:['E:\\\\documents\\\\F盤', 'D:\\\\python3\\\\python37.zip', 'D:\\\\python3\\\\DLLs', 'D:\\\\python3\\\\lib', 'D:\\\\python3', 'D:\\\\python3\\\\lib\\\\site-packages']
添加路徑后頂層文件模式執(zhí)行的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通過(guò)as關(guān)鍵字給模塊或模塊屬性取別名,達(dá)到簡(jiǎn)寫和避免名字沖突的效果。

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 通過(guò)as給模塊或?qū)傩匀e名,之后通過(guò)別名訪問(wèn)模塊對(duì)象屬性。
2 用as后,不可通過(guò) “原模塊原名”訪問(wèn)模塊屬性,不可訪問(wèn)“原屬性名”。
3 用as后,模塊搜索路徑存放的鍵為模塊原名,而非別名。
4 用as后,通過(guò)字符串方式訪問(wèn)的用“原名”,通過(guò)變量名方式訪問(wèn)的用“別名”。

文件內(nèi)容

E:\\documents\\F盤\\testas.py

import os

tyxt='梯閱線條'

def testas():
   print("run:{}".format(os.path.abspath(__file__)))
   print("__name__:{}".format(__name__))

示例

# 打開(kāi)cmd 執(zhí)行下面示例
E:\\documents\\F盤>python
# as 模塊取別名
>>> import testas as tas
# 模塊別名訪問(wèn)屬性
>>> tas.tyxt
'梯閱線條'
>>> tas.testas()
run:E:\\documents\\F盤\\testas.py
__name__:testas
# 原模塊名可訪問(wèn)
>>> testas.tyxt
Traceback (most recent call last):
 File "", line 1, in 
NameError: name 'testas' is not defined
# as 屬性取別名
>>> from testas import testas as ts
# 屬性別名可訪問(wèn)
>>> ts()
run:E:\\documents\\F盤\\testas.py
__name__:testas
# 原屬性名不可訪問(wèn)
>>> testas()
Traceback (most recent call last):
 File "", line 1, in 
NameError: name 'testas' is not defined
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2714

    瀏覽量

    47508
  • AS
    AS
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    26093
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84727
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python模塊搜索路徑

    編程語(yǔ)言python
    小凡
    發(fā)布于 :2022年09月09日 11:31:03

    python模塊安裝方法

    Python模塊呢?import語(yǔ)句自定義模塊可以采用import語(yǔ)句來(lái)進(jìn)行引入,其操作步驟是先導(dǎo)入模塊,再調(diào)用模塊中包含的函數(shù),可將自定義
    發(fā)表于 04-04 14:57

    python編寫一個(gè)高效搜索代碼工具

    python編寫一個(gè)高效搜索代碼工具大多碼農(nóng)在linux環(huán)境下使用grep+關(guān)鍵詞的命令搜索自己想要的代碼或者log文件。今天介紹用python如何編寫一個(gè)更強(qiáng)大的
    發(fā)表于 01-16 15:24

    Python的自動(dòng)搜索路徑使用方法

    Python模塊搜索路徑
    發(fā)表于 07-31 14:26

    有關(guān)Python解析

    搜了很多歷年藍(lán)橋杯真題解答,大多都是Java,C++,C這些語(yǔ)言編寫的代碼解析。Python解析的幾乎,甚至可以說(shuō)沒(méi)有。而當(dāng)下Python又這么火熱,藍(lán)橋杯也出了
    發(fā)表于 07-29 08:39

    基于Dijkstra的PKI交叉認(rèn)證路徑搜索算法

    針對(duì)網(wǎng)狀型公鑰基礎(chǔ)設(shè)施(PKI)信任模型認(rèn)證路徑的不確定性,提出一種基于Dijkstra 算法的PKI 交叉認(rèn)證路徑搜索算法。該算法根據(jù)PKI 系統(tǒng)中配置的認(rèn)證路徑
    發(fā)表于 03-20 15:59 ?20次下載

    數(shù)據(jù)科學(xué)的完整學(xué)習(xí)路徑Python版)

    方了。本文的目的就是給數(shù)據(jù)分析方面的Python新手提供一個(gè)完整的學(xué)習(xí)路徑。該路徑提供了你需要學(xué)習(xí)的利用Python進(jìn)行數(shù)據(jù)分析的所有步驟的完整概述。如果你已經(jīng)有一些相關(guān)的背景知識(shí),或
    發(fā)表于 01-25 17:03 ?0次下載

    Python中BeatifulSoap解析HTML的三個(gè)實(shí)用小技巧詳解

    BeautifulSoup是Python爬蟲(chóng)應(yīng)用解析Html的利器,是Python三方模塊bs4中提供的進(jìn)行HTML解析的類,可以認(rèn)為是一個(gè)
    的頭像 發(fā)表于 04-15 13:51 ?2069次閱讀

    基于改進(jìn)遺傳算法的無(wú)人機(jī)搜索路徑規(guī)劃的研究

    無(wú)人機(jī)搜索路徑規(guī)劃就是為執(zhí)行搜索任務(wù)的無(wú)人機(jī)規(guī)劃搜索路徑,以能夠盡早地發(fā)現(xiàn)被搜索的目標(biāo)。無(wú)人機(jī)
    發(fā)表于 03-04 15:52 ?1099次閱讀

    圖染色局部搜索算法python

    一個(gè)簡(jiǎn)單的局部搜索算法解決圖染色問(wèn)題,python版本太少了,寫了一個(gè)
    發(fā)表于 01-03 14:31 ?1次下載

    python模塊相對(duì)導(dǎo)入from和import介紹1

    無(wú)包文件**init**.py下,python通過(guò)import module導(dǎo)入模塊時(shí),先搜索程序運(yùn)行主目錄。 程序運(yùn)行主目錄為運(yùn)行的py文件所在目錄,而不是執(zhí)行python.e
    的頭像 發(fā)表于 02-21 14:15 ?1040次閱讀

    python模塊相對(duì)導(dǎo)入from和import介紹2

    python2.7先搜索當(dāng)前包目錄,再搜索sys.path模塊搜索路徑。即先相對(duì)再絕對(duì)。
    的頭像 發(fā)表于 02-21 14:17 ?712次閱讀

    簡(jiǎn)述python模塊import和from及all

    python指定導(dǎo)入目錄路徑,稱為包導(dǎo)入。 通過(guò)import和from導(dǎo)入包模塊。 通過(guò)**all**指定導(dǎo)入的模塊和導(dǎo)入的模塊
    的頭像 發(fā)表于 02-21 14:20 ?1255次閱讀

    TSMaster小功能—Python小程序如何導(dǎo)入外部庫(kù)

    今天給大家介紹TSMaster功能之Python小程序如何導(dǎo)入外部庫(kù)。通過(guò)在TSMaster默認(rèn)的解析路徑下導(dǎo)入外部庫(kù)來(lái)介紹,以便我們?nèi)ナ褂?b class='flag-5'>Python外部庫(kù)。TSMaster默認(rèn)
    的頭像 發(fā)表于 08-14 10:06 ?1193次閱讀
    TSMaster小功能—<b class='flag-5'>Python</b>小程序如何導(dǎo)入外部庫(kù)

    查看python安裝路徑的方法

    Python是一種高級(jí)編程語(yǔ)言,常用于開(kāi)發(fā)Web應(yīng)用、數(shù)據(jù)分析、人工智能等領(lǐng)域。在使用Python進(jìn)行開(kāi)發(fā)之前,我們需要先安裝Python解釋器,并了解Python解釋器的安裝
    的頭像 發(fā)表于 11-29 14:54 ?1.1w次閱讀