查看並添加python中庫的搜索路徑


根據前文  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 中。

 

 

 

 

 

=====================================================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM