1. 程式人生 > 其它 >python是如何查詢安裝包的

python是如何查詢安裝包的

問題一: python是如何查詢包的?
1.1 三個重要的函式
首先介紹幾個有用的函式,以python2為例,這三個函式的含義是
excutable: Python的直譯器路徑
path: 包的搜尋路徑列表
prefix: 當前使用的path-prefix

import sys
print(sys.executable)
# /usr/bin/python2
print(sys.path)
# ['/usr/lib/python2.7', '/usr/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages']
print(sys.prefix)
# '/usr'
1
2
3
4
5
6
7
1.2 python查詢包的過程
以我的電腦為例, python2的直譯器的路徑為

/usr/bin/python2
1
則我的python的path-prefix為’/usr’
下面為包的搜尋過程:
A: path-prefix/lib : 標準庫路徑,裡面有os,sys之類的
B: path-prefix/lib/python.X.Y/site-package :第三方庫路徑
C: 當前路徑 : pwd的結果
所以程式在搜尋包的時候,是先搜尋標準庫,然後第三方庫,然後才自己的專案目錄.

當然還有一種情況: 就是你有一個第三方庫,不在上面任何一個目錄,加入說你的第三方庫的檔案目錄為’/home/sl/lib/hello_project’
可以通過在PYTHONPATH中新增路徑,如下

export PYTHONPATH=$PYTHONPATH:'/home/sl/lib/hello_project'
1
這樣就可以在sys.path中找到了.

問題二: Python的包放在哪裡呢?
實際上上面的問題已經說出python是怎麼查詢包的,自然就知道包放在哪裡的,但是這裡要注意一點是,我們通常會使用 apt-get或者是pip來進行安裝包.這兩者的安裝路徑是不一樣的
如果使用pip或者pip3,則第三方包放在:

path-prefix/local/lib/python3.5/site-package
1
如果使用apt-get,則第三方包放在(這個我不怎麼用)

path-prefix/lib/python3.5/site-package
1
總結:
所以查詢包的過程,前提是找到python的直譯器,這樣的話才能推匯出path-prefix.那python的直譯器如何找呢

whereis python
# ['/usr/bin/python', '/usr/bin/python3.5']
————————————————
版權宣告:本文為CSDN博主「豬先生1994」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_19645269/article/details/104590587

全世界的程式設計師們聯合起來吧!