A) 關於 pip 安裝方式:
- 見 Python: 安裝 pip 於 Windows 或 CentOS & 線上/離線安裝 (pip 101)
- Python 3.4 開始與 Python 2.7.9 都有內建在安裝包裡了 [1]
B) 常用方法
1. 檢查版本、安裝或更新一個套件
- 檢查版本
|
|
- 安裝套件 (online)
|
|
- 安裝本機 wheel 檔 (
.whl
) 或壓縮檔 (.zip
) [2]
|
|
- 升級套件 [3]
|
|
- 移除套件
|
|
Note
- 使用
pip
或是python -m pip
都是可以的。主要的差別會在「升級pip
的時候,需要python -m pip install --upgrade pip
」:因為升級的過程其實是「先刪除舊的pip
」 然後再「安裝新的」,所以如果純用指令會出現錯誤。而如果使用執行套件 (pip
module) 安裝,因pip
有在__main__
裡面寫好 script,所以執行時會暫存在記憶體裡,因而不受影響。 - 常用
pip3
來安裝套件,主要是安裝 python 3 之後系統就會有兩個 Python (眾所皆知的 Python 2 & 3);文章中寫pip
我實際上都用pip3
,主要看執行路徑或 alias 怎麼設定而已。有問題可以參考 pip 疑難雜症 (pip troubleshooting)
2. 確認套件相關資訊
- 列出已安裝套件與其版本
|
|
這個指令會在虛擬環境開發時很有用,幫助你檢查當前的環境到底安裝了哪些東西。
- 查詢套件細節 (metadata)
|
|
其中,結果的 requires
欄位會顯示跟此套件相依的套件。
- 檢查是否有未安裝的相依套件
|
|
- 匯出已安裝的套件版本清單
|
|
用此匯出的方式,可以在不同的環境快速轉移或更新已安裝的套件,這步的結果會在下一節用到。
- 搜尋套件
目前 python.org 已移除「接收 pip search
搜尋套件請求」的 API,因為流量太大 [4],所以可能需要直接在 pypi.org 找,或下載其他搜尋套件。
e.g. pypi-simple-search or pipsearch.
3. 批次安裝大量套件
前面提到 pip freeze
,我們可以利用這個匯出的結果直接當作批次安裝的 input。
- 查看匯出結果
|
|
- 批次安裝
|
|
C) 進階設定檔
1. 設定檔 example
有的時候,如果 pip
使用的需求比較複雜一點,就可以借用設定檔的方式來簡化調整參數與維護的成本。
pip
可以讀取 pip.conf
裡面定義的參數,例如像這樣 [5]:
|
|
或是設定相關信任的站點
|
|
2. 設定檔讀取順序
在 pip
設定檔中,有四個地方會依序讀取:
- 環境變數
PIP_CONFIG_FILE
指向的檔案 - Global:
/etc/pip.conf
- User:
$HOME/.pip/pip.conf
或$HOME/.config/pip/pip.conf
- Site:
$VIRTUAL_ENV/pip.conf
由於是依序讀取,所以如果某些參數在之前的設定檔已定義,會被最下面的 Site 設定檔覆蓋。
可以依照自己開發的需求調整 pip
要套用的設定檔。
Note
Site
此階層,文件中的定義是
per-environment configuration file; i.e. per-virtualenv.
指的就是此開發環境用到的 pip.conf
。
D) Troubleshooting
REF
- https://realpython.com/what-is-pip/
- https://stackoverflow.com/questions/15031694/installing-python-packages-from-local-file-system-folder-to-virtualenv-with-pip
- https://note.nkmk.me/en/python-pip-usage/
- https://stackoverflow.com/questions/66375972/getting-error-with-pip-search-and-pip-install
- https://pip.pypa.io/en/stable/topics/configuration/