亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python模塊搜索路徑代碼詳解

 更新時間:2018年01月29日 14:03:09   作者:一去丶二三里  
這篇文章主要介紹了Python模塊搜索路徑代碼詳解,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

簡述

由于某些原因,在使用 import 時,Python 找不到相應的模塊。這時,解釋器就會發(fā)牢騷 - ImportError。

那么,Python 如何知道在哪里搜索模塊的路徑呢?

模塊搜索路徑

當導入名為 hello 的模塊時,解釋器首先搜索具有該名稱的內置模塊。如果沒有找到,將在變量 sys.path 給出的目錄列表中搜索名為 hello.py 的文件。

sys.path 從這些位置初始化:

包含輸入腳本的目錄(或當前目錄,當沒有指定文件時)
PYTHONPATH(目錄名列表,與 shell 變量 PATH 語法相同)
與安裝相關的默認值

>>> import sys
>>> sys.path
['', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux',
 '/usr/local/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/site-packages']

注意: '' 表示當前目錄(當前腳本所在的路徑)

例如,在 /home/wang/workspace 中創(chuàng)建一個名為 hello.py 的模塊,內容如下:

print('Hello')

然后,試圖加載該模塊:

>>> import os
>>> 
>>> os.getcwd() # 獲取當前目錄
'/home/wang'
>>> 
>>> import hello.py
...
ImportError: No module named 'hello'

很遺憾,由于 sys.path 中沒有包含 /home/wang/workspace 這個路徑,所以找不到 hello 模塊,從而引發(fā) ImportError。

添加模塊搜索路徑

為了解決上述問題,需要添加模塊搜索路徑,可以使用以下幾種方式:

1.動態(tài)增加路徑

臨時生效,對于不經常使用的模塊,這通常是最好的方式,因為不必用所有次要模塊的路徑來污染 PYTHONPATH。

2.修改 PYTHONPATH 變量

永久生效,對于在許多程序中都使用的模塊,可以采用這種方式。這將改變所有 Python 應用的搜索路徑,因為啟動 Python 時,它會讀取這個變量,甚至不同版本的 Python 都會受影響。

3.增加 .pth 文件

永久生效,這是最簡單的、也是推薦的方式。Python 在遍歷已知的庫文件目錄過程中,如果遇到 .pth 文件,便會將其中的路徑加入到 sys.path 中,于是 .pth 中所指定的路徑就可以被 Python 運行環(huán)境找到了。

動態(tài)增加路徑

通過 sys 模塊的 append() 方法在 Python 環(huán)境中增加搜索路徑:

>>> import sys
>>> sys.path.append('/home/wang/workspace')

現在,查看搜索路徑:

>>> sys.path
['', '/usr/local/lib/python35.zip', '/usr/local/lib/python3.5', '/usr/local/lib/python3.5/plat-linux',
 '/usr/local/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/site-packages', '/home/wang/workspace']
>>> 
>>> import hello
Hello

可以看到,路徑被成功添加進去了,再次執(zhí)行導入可以正常使用。

修改 PYTHONPATH 變量

打開并編輯 bashrc:

$ vim ~/.bashrc

將以下內容附加到文件末尾:

export PYTHONPATH=$PYTHONPATH:/home/wang/workspace

不要忘記重新加載 shell,方法是退出并重新啟動,或者在命令行重新加載配置文件:

$ source ~/.bashrc # 或者 . ~/.bashrc 

增加 .pth 文件

在 /usr/local/lib/python3.5/site-packages 下添加一個擴展名為 .pth 的配置文件(例如:extras.pth),內容為要添加的路徑:

/home/wang/workspace

總結

以上就是本文關于Python模塊搜索路徑代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關文章

  • 對python中矩陣相加函數sum()的使用詳解

    對python中矩陣相加函數sum()的使用詳解

    今天小編就為大家分享一篇對python中矩陣相加函數sum()的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python、PyCharm安裝及使用方法(Mac版)詳解

    Python、PyCharm安裝及使用方法(Mac版)詳解

    這篇文章主要為大家詳細介紹了Mac版的Python、PyCharm安裝及使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • python實現一行輸入多個整數并排序輸出

    python實現一行輸入多個整數并排序輸出

    這篇文章主要介紹了python實現一行輸入多個整數并排序輸出方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python爬蟲中url管理器去重操作實例

    python爬蟲中url管理器去重操作實例

    在本篇內容里小編給大家整理的是一篇關于python爬蟲中url管理器去重操作實例,有需要的朋友們可以參考下。
    2020-11-11
  • 詳解Python3除法之真除法、截斷除法和下取整對比

    詳解Python3除法之真除法、截斷除法和下取整對比

    這篇文章主要介紹了詳解Python3除法之真除法、截斷除法和下取整對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-05-05
  • python函數參數(必須參數、可變參數、關鍵字參數)

    python函數參數(必須參數、可變參數、關鍵字參數)

    這篇文章主要介紹了python函數參數(必須參數、可變參數、關鍵字參數)的相關知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-08-08
  • 如何將json數據轉換為python數據

    如何將json數據轉換為python數據

    這篇文章主要介紹了如何將json數據轉換為python數據,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • python的slice notation的特殊用法詳解

    python的slice notation的特殊用法詳解

    今天小編就為大家分享一篇python的slice notation的特殊用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 解決Python運算符重載的問題

    解決Python運算符重載的問題

    這篇文章主要介紹了解決Python運算符重載的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python實現定時任務的八種方案詳解

    Python實現定時任務的八種方案詳解

    在日常工作中,我們常常會用到需要周期性執(zhí)行的任務,我們可以用Python直接實現這一功能。本文整理的是常見的Python定時任務的八種實現方式,需要的朋友可以參考一下
    2022-02-02

最新評論