根據前文 pip install --user 使用方法和注意事項——python中安裝module庫到用戶packages路徑中
我們知道python中除了自身的全局module lib路徑以外還是存在用戶module lib路徑的,為了了解python中庫的搜索路徑我們需要知道python模塊site.py 中的一些變量及使用方法。
site.
getsitepackages
() 獲得python中全局site-package路徑。
site.
getusersitepackages
() 獲得python中用戶的site-package路徑。
其中,site-package 為python中為第三方module lib安裝提供的路徑。
在使用 pip install xxx 時,是吧module lib安裝到了全局的site-packages路徑下的,在使用 pip install xxx --user 時是吧module lib安裝到了用戶的site-packages下面的。
這里舉例:
windows平台下,python3.8版本,查看全局和用戶 site-packages路徑:
>>> import site
>>> site.getusersitepackages()
'C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages'
>>> site.getsitepackages()
['C:\\Users\\81283\\anaconda3', 'C:\\Users\\81283\\anaconda3\\lib\\site-packages']
其中, site.USER_BASE 可以查看用戶module lib的根目錄。 site.USER_SITE可以查看用戶 module lib的site-packages路徑。
-----------------------------------------------------------------
更加全面的查看python中module lib的搜索路徑:
python -m site
其中, sys.path 中是所有module lib的搜索路徑,
USER_BASE, USER_SITE 已經上面介紹了。
ENABLE_USER_SITE: 用來表示是否啟用用戶下的module lib搜索路徑,也就是當 ENABLE_USER_SITE=True 時,並且C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages 路徑存在,此時sys.path中是有用戶module lib搜索路徑:C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages的。
如果ENABLE_USER_SITE=False 或者 用戶module lib搜索路徑不存在,此時sys.path中是不出現 C:\\Users\\81283\\AppData\\Roaming\\Python\\Python38\\site-packages的。
演示: 移除用戶的 module lib搜索路徑:
再次使用 python -m site 查看python所有的module lib搜索路徑:
發現 sys.path中已經看不到用戶module lib的搜索路徑。
===============================================
如何為當前python環境添加新的module lib搜索路徑呢???
在當前 sys.path 的所有可搜索路徑下面添加 .pth 文件, .pth文件的文件名任意,這個主要看后綴名。在 .pth 文件中添加想要添加的新的 module lib搜索路徑。
當前的 搜索路徑:
在 sys.path 的任一路徑下面創建 .pth 文件,如:
mypath.pth 文件內容:
再次查看 python 的 module lib搜索路徑:
可以看到 .pth 文件中寫的新的module lib路徑已經添加到 sys.path 中。
=====================================================