python的import操作,其本質類似於我們日常在電腦上搜尋指定文件名的文件,只不過,python一般不會像我們那樣,在本地磁碟全盤進行搜索,而是有其自己的控制機制,可以控制搜索的範圍和順序,這樣可以保證效率,同時也可以做到一定程度的隔離,例如python創建虛擬的運行環境,就是基於這個原理,不同虛擬運行環境,python安裝路徑、import搜尋路徑都是單獨隔離的,而常用的虛擬環境維護和創建工具,其核心也是透過修改python預設安裝路徑、版本、套件搜尋路徑等資訊達到目的的。
一般情況下,import時,套件搜尋順序和範圍如下:
#首先搜尋執行指令目前資料夾,或是系統目前工作資料夾(可透過指令修改cwd)
再搜尋環境變數PYTHONPATH內的檔案路徑
最後搜尋python安裝路徑內的sitepackages資料夾(一般透過pip安裝的包,均會預設放到這個資料夾下,當然,也可簡單的將自己的包放到這個資料夾下,這樣也無需改變搜尋路徑)
核心思路,即修改1.1中提到的三個搜尋節點的值,即可改變套件導入時的搜尋範圍
sys.path變量,管理的是Python套件搜尋路徑內所有資料夾路徑(即目前資料夾、PYTHONPATH環境變數內的路徑、python預設安裝路徑),該變數是個列表,可以透過sys.path.append或sys.path.insert等方法,將自己希望匯入時被搜尋的路徑加入到該清單變數內即可。
不過此方法只會在執行時生效,一旦退出,便失效。
PYTHONPATH環境變量,是管理python套件導入時的搜尋路徑的變量,故可以透過向該環境變數內新增路徑的方式來修改搜尋路徑,且該方法因為是修改了環境變量,故也是永久的,且影響也是全域的。
針對Mac電腦,修改該環境變數的方法如下:
開啟~/.bashrc文件,如果沒有,則透過touch指令建立
在文件內寫上export PYTHONPATH=your own dir :$PYTHONPATH,例如你希望將~/test路徑加入該環境變量,則為 export PYTHONPATH=~/test :$PYTHONPATH
在命令列執行source ~/.bashrc(主要是讓系統重新載入運行該文件,以使此修改生效)
以上兩個辦法,或是臨時修改,或是全域修改影響面太大,第三種方式可謂兼具前兩種方法的特性。
可以在指定Python安裝目錄下的site-packages目錄資料夾內,新增一個**.pth文件,在該文件內逐行新增自己希望被搜尋的路徑即可。
方法1:(先進入python)
import sys sys.path.append(‘路径')
(這種方式只對目前python有效)
方法2:
export PYTHONPATH=路径
(這種方式對所有的python有效)
以上是python如何修改套件導入時搜尋路徑的詳細內容。更多資訊請關注PHP中文網其他相關文章!