Python 包安裝在哪裡

Vaibhhav Khetarpal 2023年1月30日 2021年7月14日
  1. 使用 pip 命令列出已安裝的軟體包
  2. 使用 conda 命令列出本地安裝的軟體包
  3. 使用 python 命令列出已安裝的軟體包
  4. 使用 distutils.sysconfig 模組列出已安裝的軟體包
  5. 使用 sysconfig 模組列出已安裝的軟體包
Python 包安裝在哪裡

Python 中的包可以定義為包含 Python 檔案的目錄。這些檔案通常是 Python 模組。

隨著程式變得越來越大和越來越複雜,類似的模組被放置在一個包中,這有助於使程式更易於管理並具有更好的可讀性。這種方法通常稱為模組化程式設計,包有助於實現它。

檔案 __init__.py 必須包含在目錄中,以便 Python 將其視為包。該檔案通常包含包的初始化程式碼,但可以留空。

本教程將討論查詢安裝 python 包的目錄的不同方法。

使用 pip 命令列出已安裝的軟體包

在 Python 中,包可以在全域性和本地安裝。

一個包在全域性安裝時可供系統中的所有使用者使用。相同的包在本地安裝時,僅對手動安裝它的使用者可用。

預設情況下,pip 命令會全域性安裝軟體包。

以下程式碼使用 pip 命令列出全域性安裝的軟體包。

# we can also use "pip list command"
pip freeze

儘管預設情況下,pip 命令會全域性安裝軟體包,但也可以使用此命令檢視本地手動安裝的軟體包。

以下程式碼使用 pip 命令列出本地安裝的軟體包。

# we can also use "pip list --user"
pip freeze --user

使用 conda 命令列出本地安裝的軟體包

此方法僅適用於使用 Anaconda IDE 的程式設計師。可以在 conda 環境中列出本地安裝的包。要執行此操作,我們只需在 Anaconda 提示符中編寫一行程式碼。

以下程式碼使用 conda 列出本地安裝的軟體包。

conda list

使用 python 命令列出已安裝的軟體包

python 命令可用於查詢包站點目錄。

全球網站套餐

發現全域性站點包列在 sys.path 中。

以下程式碼使用 python 命令列出全域性安裝的軟體包。

python -m site

site 模組也可以與 python 命令一起使用,以獲得更好、更簡潔的包列表。此方法使用 site 模組中的 getsitepackages()

以下程式碼使用 python 命令和 site 模組列出全域性安裝的軟體包。

python -c 'import site; print(site.getsitepackages())'

請注意 getsitepackages() 函式在 virtualenv 中不可用。

本地安裝的軟體包

本地包安裝在 per-user 站點包目錄 (PEP 370) 中。

以下程式碼使用 python 命令列出本地安裝的軟體包。

python -m site --user-site

使用 distutils.sysconfig 模組列出已安裝的軟體包

distutils 包可用於提供在 Python 安裝中安裝和構建附加模組的功能。在這種情況下,它也可用於列出包。

以下程式碼使用 distutils.sysconfig 列出全域性安裝的軟體包。

python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"

唯一的缺點是它會將我們指向 dist-packages 或作業系統自動安裝的軟體包的目錄。

使用 sysconfig 模組列出已安裝的軟體包

在 Python 3 及更高版本中,sysconfig 模組可用於列出已安裝的軟體包。

不要將 sysconfig 模組與上面提到的 distutils.sysconfig 子模組混淆。後者是一個完全不同的模組,它在此處使用的 get_paths 函式中存在缺陷。

以下程式碼使用 sysconfig 模組列出已安裝的軟體包。

python -c "import sysconfig; print(sysconfig.get_path('purelib'))"

我們在這裡使用 purelib 路徑,它是標準 Python 包的安裝位置,並藉助 pip 等工具。

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

相關文章 - Python Installation