首頁 >後端開發 >Python教學 >Python 套件管理:你知道它們在哪裡嗎?

Python 套件管理:你知道它們在哪裡嗎?

Linda Hamilton
Linda Hamilton原創
2024-11-07 13:55:03411瀏覽

Python Package Management: Do You Know Where They Live?

有一天,我正高興地用 pip 安裝一些 Python 包,突然我意識到:我剛剛下載了 3GB 的數據,卻不知道它去了哪裡!如果您發現自己處於這種情況,歡迎來到俱樂部。讓我們一起揭開Python包丟失的謎團,並學習如何更好地管理我們寶貴的磁碟空間。

Python 套件的迷人世界

在我們深入探討「我的包包到底在哪裡?」之前,讓我們先更了解這個生態系統是如何運作的。 Python 套件索引 (PyPI) 就像一個巨大的程式碼購物中心。我們沒有商店,而是讓開發人員將他們的軟體包提供給其他人使用。還有皮普?嗯,它是我們的虛擬購物車,負責在我們的機器上下載並安裝這些包。

包裹的秘密藏身處

當你運行那個無辜的 pip install 時,你的包可能會出現在不同的地方,就像青少年選擇週末去哪裡玩一樣。讓我們來認識這些地方:

共享之家(全球安裝)

/usr/local/lib/pythonX.Y/site-packages/
# or
/usr/lib/pythonX.Y/site-packages/

這是套餐的共享公寓。系統上的每個人都可以使用它,但您需要管理員權限才能進行更改。就像合租的房子,要在牆上掛畫需要徵得房東的同意。

個人工作室(用戶安裝)

~/.local/lib/pythonX.Y/site-packages/

這裡是您的私人角落。當您使用 pip install --user 時,軟體包將位於該位址。它更安全,不會幹擾系統上的其他使用者。就像擁有自己的房間一樣:您可以隨心所欲地裝飾它,而無需諮詢任何人。

Airbnb(虛擬環境)

<caminho_para_venv>/lib/pythonX.Y/site-packages/

虛擬環境就像為您的包裹租用 Airbnb。每個項目都可以有自己的空間,有自己的套件版本,不會與其他項目衝突。對於從事具有不同要求的多個專案的人來說,這是理想的解決方案。

調查包裹的下落

如果您像我一樣安裝了某些東西,但現在想“它在哪裡?”,有一些偵探工具可以提供幫助:

pip show package_name

此指令就像是包裹的 GPS。它準確地顯示了每個安裝的位置,以及其他有用的信息,例如版本、依賴項和簡短描述。

對於更好奇的人,想知道每個包佔用了多少空間,我們可以使用命令組合:

pip list --format=freeze | cut -d '=' -f 1 | while read package; do
size=$(du -sh "$(pip show -f "$package" | grep Location | cut -d ' ' -f 2)/$package" 2>/dev/null | cut -f1)
echo "$package - $size"
done

清理

發現您的包裹佔用太多空間?是時候進行一些清潔了:

/usr/local/lib/pythonX.Y/site-packages/
# or
/usr/lib/pythonX.Y/site-packages/

但是要小心!在開始卸載所有內容之前,請檢查其他軟體包是否依賴您要刪除的內容。這就像從 Jenga 中取出一塊 - 有些部分可能對於保持一切正常至關重要。

套件管理的最佳實踐

經過一些經歷(我承認有些痛苦),這裡有一些有價值的提示:

  1. 使用虛擬環境:說真的,這會給你省去很多麻煩。這就像每個項目都有一個新家。

  2. 保留一個requirements.txt:列出您的專案所需的所有套件。這就像製定購物清單 - 您確切地知道自己需要什麼。

  3. 定期回顧:不時查看已安裝的軟體包。您可能會對自己不再使用的數量感到驚訝。

  4. 文件依賴項:記下安裝每個套件的原因。未來的你會感謝你的。

Python 套件的世界是廣闊的,有時有點令人困惑,但只要有正確的工具和一點點組織,就可以控制一切。這就像保持房子整潔一樣 - 需要付出努力,但這是值得的。

下次你去安裝 Python 套件時,你就會知道:它不會消失在數位以太中。它有一個固定的地址,一個屬於自己的家。現在您知道如何在需要時找到它。

記住:有組織的開發者是快樂的開發者。一個有組織的檔案系統不會讓我們在凌晨三點因為「沒有更多的磁碟空間」而想把電腦丟出窗外。

以上是Python 套件管理:你知道它們在哪裡嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn