最近一直被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 件不起作用,也就是不能套娃 方法二 新建使用者環...