pip
是 Python
程式語言的官方包管理工具,它使得安裝、更新和解除安裝第三方庫變得簡單而高效。它在功能上類似於 nodejs
中的 npm
或 PHP
中 Composer
,是 Python
開發者不可缺少的工具。
pip 的安裝與配置
大多數情況下,pip 已經作為 Python 環境的一部分預裝好了,無需進行額外的安裝步驟。然而,爲了確保 pip 的使用,需要確保 Python 和 pip 都被新增到了系統的環境變數中。這樣,就可以在命令列介面中直接呼叫 pip 命令。
本文將詳細記錄如何使用 pip 來安裝、解除安裝和更新 Python 專案所需的依賴包,以及常用的pip命令和選項。
設定pip映象源
pip預設安裝源在國外,國內安裝可能比較慢,若想加速可更換為國內映象,比如阿里雲、清華大學映象等
方法:
開啟檔案 C:\Users\你的使用者名稱\AppData\Roaming\pip\pip.ini
,如果不存在 pip
資料夾則建立該資料夾並新建 pip.ini
檔案,如果存在pip
資料夾但不存在pip.ini
檔案,同樣新建該檔案,然後輸入
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com
表示映象源用阿里源
檢視幫助資訊
命令列視窗中輸入 pip -h
即可檢視幫助資訊,非常詳細。
要檢視某個命令的幫助資訊,可輸入pip 命令 -h
,比如檢視 install 命令的幫助資訊 pip install -h
安裝依賴包:install
命令
1. 安裝一個或多個依賴包
pip install 包名1 包名2
2. 安裝特定版本的依賴包
pip install 包名==版本號
版本號規則:
~=: 匹配相容版本,一般是第一個點號之前相同的版本均可如 ~=2.0
==: 版本完全匹配 如 ==3.24.0
!=: 排除指定的版本 如 !=3.24.0
<=, >=: 小於某個版本並且大於某個版本 <=2.6,>=2.1
<, >: 類似上個
===: 匹配不符合版本義控制的某個版本號。==="prev6"
示例安裝 requests 包
pip install requests==2.32.3 pip install requests >=2.0 pip install requests !=2.0 pip install requests ~=2.0 pip install requests >=2.0,<=2.3 # 限定python版本必須大於等於3.8 pip install requests>=2 ; python >= '3.8'
參見版本號規則官方教程 packaging.python.org/en/latest/s…
3. 從本地目錄或檔案安裝包
要求本地目錄下存在 setup.py
檔案pip install path/to/dir
或從本地包含 setup.py
的zip檔案、whl檔案中安裝
pip install path/to/zipfile.zip
4. 從git上安裝
pip install git+倉庫url
如 pip install git+https://github.com/<user-name>/<repository-name>
安裝倉庫的特定版本 pip install git+https://github.com/requests/requests@v2.30.0
5. 從url地址安裝包
pip install https://github.com/requests/requests/archive/v2.30.0.zip
6. pip install
命令的常用選項
主義:以英文逗號分隔的2部分,前面短橫線(-)的是短選項,後邊雙橫線的是長選項(--),兩者等同,使用任意一個均可以
-e, --editable
-e
或 --editable
是 install
命令的一個選項,用於以可編輯模式(editable mode)安裝專案。 -e
是短選項,--editable
是長選項,二者等同,用任意一個即可。
可編輯模式通常被稱為 setuptools
的 develop mode
,它允許你在本地進行開發,並在修改程式碼後立即看到變化,而不需要重新安裝包。
--dry-run
--dry-run
是 install
命令的一個選項,用於在不實際安裝任何內容的情況下,僅列印出安裝的過程。用於檢查安裝過程中可能發生的情況,而不實際修改你的 Python 環境。
-r, --requirement
該選項用於從指定的檔案中批次安裝依賴包,例如 pip install -r requests.txt
從給定的requirements.txt檔案中安裝指定的依賴包。此選項可多次使用。
檔名任意,只要是符合格式即可,一般使用 requirements.txt
名稱
-U, --upgrade
該選項將指定軟體包升級到最新版本。
--force-reinstall 強制重新安裝指定的軟體包,即使它們已經是最新的。
-I,--ignore-installed
忽略已安裝的軟體包,並覆蓋它們。如果現有軟體包的版本不同或使用不同的軟體包管理器安裝,這可能會破壞系統!
--trusted-host
該選項用於將某個主機或主機:埠標記為可信賴的。在某些情況下,軟體包索引伺服器可能沒有有效的HTTPS證書或使用非標準的埠。使用此引數可以告訴pip信任該主機,即使它沒有有效的證書或使用了非標準埠。
使用方法:
pip install package_name --trusted-host hostname
例如,要安裝requests包並信任阿里映象
mirrors.aliyun.com
的主機,可以執行以下命令:
pip install requests --trusted-host mirrors.aliyun.com
--no-deps
該選項用於指示 pip
在安裝包時不安裝其依賴項。 通常,pip
會自動解析並安裝包所依賴的其他包,以確保安裝的包能夠正常執行。使用 --no-deps
選項將禁止這種自動依賴項安裝行為。
--no-warn-conflicts 不警告版本衝突問題
-i, --index-url
用於指定從哪個 url地址安裝軟體包。預設是官方pip庫,可替換為阿里雲映象等,比如示例是清華大學映象
--extra-index-url
除了 --index-url
之外,額外使用的軟體包索引的 URL。
--no-index
忽略軟體包索引,如果你不希望從指定的地址,比如官方映象、阿里雲映象中尋找軟體包,而是從其他指定的位置,那麼可以使用該選項,並使用 --find-links
指定要尋找的位置,本地位置或url
-f, --find-links
指定從什麼 URL 或本地地址尋找依賴包,如果是url則解析指向 sdist (.tar.gz) 或 wheel (.whl) 檔案等歸檔檔案的連結。如果是本地路徑或 file:// URL 的目錄,則在目錄列表中查詢存檔。不支援指向 VCS 專案 URL 的連結。
解除安裝依賴包
使用uninstall
命令執行解除安裝
pip unstall packageName
解除安裝時預設會彈出一個提示,等待你輸入 Y 後纔開始解除安裝,可以加入 -y 選項,不提示而是直接解除安裝
pip unstall -y packageName
更新包
實際是使用 install
命令的選項--upgrade
實現
pip install --upgrade packageName
檢視包資訊
命令形式pip show packageName
匯出一個專案的所有依賴
將一個專案中安裝的所有依賴包匯出到一個txt檔案中,以方便分發給其他人安裝。
命令 pip freeze > 檔案.txt
, 檔名隨意,但一般使用requirements.txt
從 requirements.txt 安裝所有依賴
正如上方所述,此命令用於安裝freeze
匯出的txt檔案,批次安裝所有依賴包
pip install -r requirements.txt
requirements.txt 格式詳細說明見 pip.pypa.io/en/latest/r…
遇到衝突或不相容怎麼辦
使用選項禁止檢測衝突
如果確定該版本的包可以正常使用,可以簡單的遮蔽檢測,使用 pip install -no-warn-conflicts packagename
重新安裝相容的版本
使用--force-reinstall
選項重新安裝相容的版本 pip install --force-reinstall packagename
遇到版本不存在怎麼辦
如下圖,提示不存在指定的這個版本,然後還列出了其他一堆版本
這種情況一般發生在使用了國內映象源的時候,此時可以重新安裝以列出的某個版本,同該不存在的版本最接近的那個,使用==版本號
如針對上圖,可執行 pip install selenium==3.14.1
,即可成功安裝
pip 通用選項
通用選項代表在任意pip命令中均可使用
-h, --help
檢視幫助文件
--require-virtualenv
只允許 pip
只在虛擬環境中執行;否則退出並顯示錯誤。
--python
使用指定的 Python 直譯器執行 pip
。
pip --python /path/to/python3.9 install SomePackage
-v, --verbose
安裝包時提供更多輸出,可以疊加使用多次(最多3次即vvv)。
pip -v install SomePackage
pip -vvv install SomePackage
-V, --version
顯示版本資訊後退出
-q, --quiet
安裝包時減少輸出資訊,靜默模式,更少輸出
--log
將安裝時的輸出資訊記錄到某個檔案中,以方便檢視錯誤資訊 如 --log rizhi.txt
--proxy
指定安裝使用的代理,牆內可能有時會用到,如 --proxy http://127.0.0.1:10809
--retries
網路連線失敗時的重試次數,例如 pip --retries 3