pip命令

崇尚技术發表於2024-08-21


pip 是 Python 的包管理器,就像手機裡的應用商店一樣,可以方便地幫你安裝、升級或解除安裝 Python 的各種第三方庫。

1、安裝pip
如果你是Python新手,很可能系統已經自帶pip。驗證是否已安裝,只需在命令列輸入:

python -m pip --version
若未安裝,可參考官方指引進行安裝。

2、安裝Python庫
想裝個requests庫試試水?一句命令搞定!

pip install requests
這就是pip最基礎也是最常見的用法,它會自動處理庫及其依賴關係。

3、升級庫
世界日新月異,庫也要保持最新狀態。要升級已安裝的所有庫:

pip list --outdated # 檢視待升級庫
pip upgrade <package_name> # 升級指定庫
4、解除安裝庫
不再需要某個庫時,我們可以這樣解除安裝:

pip uninstall <package_name>
5、搜尋庫
在決定安裝某個庫之前,你可能想先了解下有哪些可用的庫能滿足你的需求。這時可以使用search命令:

pip search <keyword>
比如查詢與機器學習相關的庫,你可以輸入pip search machine learning。

6、檢視已安裝庫詳細資訊
想知道已安裝的庫具體版本和其他詳情?show命令可以幫助你:

pip show <package_name>
7、只下載庫而不安裝
有時你可能需要離線環境安裝包或者備份當前環境的依賴,那麼可以使用download命令只下載不安裝:

pip download <package_name>
8、建立requirements檔案
在專案開發中,為了方便團隊成員統一環境,我們可以建立一個包含所有依賴的requirements檔案:

pip freeze > requirements.txt
這會列出當前環境中所有已安裝庫及其版本,並儲存到requirements.txt檔案中。而要根據這個檔案安裝所有依賴,只需:

pip install -r requirements.txt
9、指定庫版本安裝
在某些情況下,你可能需要安裝特定版本的庫,比如安裝 requests 庫的2.25.1版本:

pip install requests==2.25.1
10、檢查是否存在安全漏洞
pip 配合Safety工具可以檢查已安裝庫的安全性:

pip install safety
safety check --full-report
這會掃描所有已安裝的庫,並報告是否有已知的安全漏洞。

11、建立虛擬環境並啟用
為了避免不同專案間依賴衝突,我們通常會在每個專案下建立獨立的虛擬環境,然後使用 pip 進行管理:

python -m venv my_project_env # 建立虛擬環境
source my_project_env/bin/activate # Linux/Mac啟用環境
my_project_env\Scripts\activate.bat # Windows啟用環境
在虛擬環境中,你可以放心使用 pip 安裝和管理專案的專屬依賴。

12、清理未使用的庫或快取
隨著專案迭代,有些不再使用的庫可能會被遺忘,這時可以使用autoremove命令來清除:

pip-autoremove <package_name>
同時,你也可以清理 pip 下載快取以釋放磁碟空間:

pip cache purge
13、檢視pip自身的版本資訊及更新pip
要檢視 pip 本身的版本,只需執行:

pip --version
為了確保 pip 始終保持最新,可使用如下命令升級 pip 自身:

python -m pip install --upgrade pip
當然,pip 的功能確實豐富多樣,讓我們繼續探索:

14、指定源安裝庫
在某些網路環境下,可能需要從國內映象或者其他自定義源下載和安裝庫。例如使用阿里雲的Python 映象源:

pip install -i https://mirrors.aliyun.com/pypi/simple/ <package_name>
或永久更改 pip 預設源(推薦在配置檔案中修改):

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
15、分發本地構建的庫
如果你自己開發了一個 Python 包,並希望在本地測試安裝,可以先打包成whl或tar.gz格式,然後透過 pip 進行安裝:

# 假設你已經將專案打包為my_package-0.1.0.whl
pip install ./my_package-0.1.0.whl
16、檢視庫安裝路徑
如果想知道某個庫具體安裝在系統哪個位置,可以使用show --files選項:

pip show --files <package_name>
17、在安裝時跳過測試
有些庫在安裝過程中會執行單元測試,若想快速安裝可選擇跳過這些測試:

pip install --no-deps --ignore-installed --no-cache-dir --disable-pip-version-check
18、列出所有全域性安裝的庫
獲取全域性環境下的所有已安裝Python庫列表:

pip list
19、在安裝時指定額外選項
某些庫可能在安裝時需要額外引數,比如numpy、scipy等科學計算庫,你可以直接在pip命令中傳遞這些選項:

pip install numpy --install-option="--openblas"
這裡的--openblas是一個示例,實際選項請根據庫文件進行設定。

20、檢視依賴樹
要了解一個包及其所有依賴關係,可以使用deptree第三方工具:

pip installdeptree
deptree -l <package_name>
這將展示指定包及其所有依賴項之間的層級關係。

21、修復損壞的庫
如果某個庫在安裝或升級過程中出現問題導致無法正常使用,可以嘗試修復它:

pip install --force-reinstall <package_name>
然後在下載目錄中找到對應的tar.gz或whl檔案解壓檢視。

22、獲取庫的原始碼
如果你對某個庫的實現細節感興趣,可以透過pip下載其原始碼:

pip download <package_name> --no-binary :all:
然後在下載目錄中找到對應的tar.gz或whl檔案解壓檢視。

23、執行pip的自定義指令碼
有些開發者可能會編寫自定義的 pip 指令碼來自動化一些任務,你可以透過run命令執行:

pip run my_script.py
24、在安裝時指定Python版本
如果你有多個Python版本並希望為特定版本安裝庫:

python3.7 -m pip install <package_name>
這裡python3.7替換成你想要使用的Python直譯器路徑。

25、檢查依賴衝突
在專案中可能存在不相容的依賴版本,可以使用pipdeptree第三方工具來檢測:

pip install pipdeptree
pipdeptree --packages <package_name>
這將展示指定包及其依賴項之間是否存在版本衝突。

26、建立獨立可執行檔案
藉助pyinstaller等工具,你可以透過pip將Python程式打包成一個獨立可執行檔案:

pip install pyinstaller
pyinstaller your_script.py
27、管理使用者級別的包
預設情況下,pip 會安裝全域性系統級別的包。若想為當前使用者安裝不影響系統的包,可以加上--user選項:

pip install --user <package_name>
28、只升級指定的包而不升級所有包
當只需要更新某個特定的庫時,可以使用--upgrade選項:

pip install --upgrade <package_name>
29、批次解除安裝多個包
如果需要一次性解除安裝多個Python包,可以透過列表形式提供包名:

pip uninstall <package1> <package2> ...
30、凍結當前環境下的所有包及其版本
為了能夠複製或記錄當前環境中所有已安裝包的狀態,可以生成一個 requirements 檔案:

pip freeze > requirements.txt
這將把所有已安裝包及其版本號寫入requirements.txt檔案中,便於在其他環境下復現相同的軟體環境。

31、根據requirements檔案建立虛擬環境並安裝包
結合虛擬環境(如venv或conda),可以從requirements檔案重新構建環境:

python -m venv my_venv
source my_venv/bin/activate # Windows: my_venv\Scripts\activate.bat
pip install -r requirements.txt
參考