Python模組搜尋路徑

2021-09-08 16:05:42 字數 1439 閱讀 5341

最近一直被python包匯入絆倒,所以打算好好學習一下python包模組搜尋路徑

外部的terminal中執行,不是ide中

import的時候,python interpreter首先搜尋built-in module中有沒有叫這個名的(比如os模組, 用__builtins__檢視

),若是沒有才會到sys.path去搜尋,順序如下:

被執行python指令碼的所在路徑pythonpath變數包含的路徑python標準庫比如json庫等

第三方庫(site-packages)以下預設是在外部的shell中執行,不是ide中

.

├── a

│ ├── a1.py

│ ├── config.py

├── a2.py

├── config.py

a1.py、a2.py中都是如下**

import sys

print(sys.path)

cd 到該工程目錄假如是 ~/test

python a/a1.py

輸出:[』/home/***/test/a』,…]

python a2.py

輸出:[』/home/***/test』,…]

所以要注意的是當python a/a1.py時,如果a/a1.py匯入本工程內的包名和pythonpath中的包名有重複時,就會先導入了pythonpath,而python a2.py不會有這種情況,因為工程目錄在pythonpath前了

或者這種情況:

a1.py中import config,這時匯入的是a/config.py,而不是./config.py

在pycharm中內建的terminal

被執行python指令碼的所在路徑pythonpath變數包含的路徑當前工程目錄python標準庫第三方庫(site-packages)

在pycharm中右鍵run

被執行python指令碼的所在路徑當前工程目錄注意和上面插入的位置不同

pythonpath變數包含的路徑python標準庫第三方庫(site-packages)

python 模組搜尋路徑

當你匯入乙個模組,python 解析器對模組位置的搜尋順序是 1 當前目錄 2 如果不在當前目錄,python 則搜尋在 shell 變數 pythonpath 下的每個目錄。3 如果都找不到,python會檢視預設路徑。unix下,預設路徑一般為 usr local lib python 模組搜尋...

Python 模組搜尋路徑

我們都知道,使用python時,無論是使用第三方的模組 庫 還是自己開發的模組,都需要先在 中使用import來引入。對於初學者,經常會遇到的乙個問題是在使用import時,python 找不到相應的模組,於是編譯器報 importerror錯誤。那麼,python 如何知道在 搜尋模組的路徑呢?當...

python新增模組搜尋路徑

方法一 新建pt 件 在任意搜尋路徑下新建pt 件 檢視搜尋路徑 import sys print sys.path pt 件內容為被新增模組的所在路徑。示例 f python ml deepidentify 注意 通過pt 件新增的搜尋路徑下的pt 件不起作用,也就是不能套娃 方法二 新建使用者環...