# pip 命令快速指令 & 參數解釋
[TOC]
## 常用指令
### 一鍵匯出專案所需模組清單
匯出清單
```powershell
pip freeze > requirements.txt
```
安裝清單中的套件
```
pip install -r requirements.txt
```
### pip install
* ==-r, --requirement <file>==
從指定的需求文件安裝。可以多次使用此選項。
* ==-c, --constraint <file>==
使用給定的約束檔案限制版本。可以多次使用此選項。
* ==--no-deps==
不安裝套件依賴。
* ==--pre==
包括預發行版和開發版本。默認情況下,pip 只查找穩定版本。
* ==-e, --editable <path/url>==
以可編輯模式安裝項目(即 setuptools 的「develop 模式」),從本地項目路徑或 VCS 網址安裝。
* ==--dry-run==
實際上不安裝任何東西,只是打印出將要安裝的內容。可以與 --ignore-installed 組合使用以「解決」需求。
* ==-t, --target <dir>==
將套件安裝到 <dir> 中。默認情況下,這不會取代 <dir> 中的現有文件/文件夾。使用 --upgrade 以新版本取代 <dir> 中的現有套件。
* ==--platform <platform>==
僅使用與 <platform> 相容的 wheel。默認情況下,使用運行系統的平台。可以多次使用此選項,以指定目標解譯器支援的多個平台。
* ==--python-version <python_version>==
用於 wheel 和「Requires-Python」相容性檢查的 Python 解譯器版本。默認情況下,衍生自運行解譯器的版本。版本可以使用最多三個點分隔的整數指定(例如「3」表示 3.0.0、「3.7」表示 3.7.0 或「3.7.3」)。也可以使用不帶點的字串表示主要-次要版本(例如「37」表示 3.7.0)。
* ==--implementation <implementation>==
僅使用與 Python 實作 <implementation> 相容的 wheel,例如「pp」、「jy」、「cp」或「ip」。如果未指定,則使用當前解譯器實作。使用「py」來強制使用實作不可知的 wheel。
* ==--abi <abi>==
僅使用與 Python abi <abi> 相容的 wheel,例如「pypy_41」。如果未指定,則使用當前解譯器 abi 標籤。通常使用此選項時,您需要同時指定 --implementation、--platform 和 --python-version。
* ==--user==
安裝到適用於您平台的 Python 用戶安裝目錄。通常是 ~/.local/ 或 Windows 上的 %APPDATA%Python。 (請參閱 Python 文件以瞭解 site.USER_BASE 的詳細資料。)
* ==--root <dir>==
將所有內容安裝到此替代根目錄中。
* ==--prefix <dir>==
安裝前綴,將 lib、bin 和其他頂層文件夾放在其中。請注意,生成的安裝可能包含腳本和其他資源,這些資源引用的是 pip 的 Python 解譯器,而不是 --prefix 的解譯器。如果意圖將套件安裝到另一個(可能是不帶有 pip 的)環境中,也請參考 --python 選項。
* ==--src <dir>==
編輯項目的檢出目錄。在虛擬環境中默認為「<venv 路徑>/src」。全局安裝的默認值為「<current dir>/src」。
* ==-U, --upgrade==
將所有指定的套件升級到最新可用版本。依賴關係的處理取決於所使用的升級策略。
* ==--upgrade-strategy <upgrade_strategy>==
確定如何處理依賴關係的升級(默認值:only-if-needed)。 「eager」 - 無論當前安裝版本是否滿足升級套件的要求,都會升級依賴項。 「only-if-needed」 - 只有當它們不滿足升級套件的要求時,才會進行升級。
* ==--force-reinstall==
即使已經是最新版本,也重新安裝所有套件。
* ==-I, --ignore-installed==
忽略已安裝的套件,覆蓋它們。如果現有套件的版本不同,或者是使用不同的套件管理器安裝的,這可能會破壞您的系統!
* ==--ignore-requires-python==
忽略 Requires-Python 資訊。
* ==--no-build-isolation==
在構建現代源分佈時禁用隔離。如果使用此選項,必須已經安裝了 PEP 518 指定的構建依賴。
* ==--use-pep517==
使用 PEP 517 來構建源分佈(使用 --no-use-pep517 強制使用舊版行為)。
* ==--check-build-dependencies==
在使用 PEP 517 時檢查構建依賴。
* ==--break-system-packages==
允許 pip 修改外部管理的 Python 安裝
* ==-C, --config-settings <settings>==
要傳遞給 PEP 517 構建後端的配置設定。設定的形式為 KEY=VALUE。使用多個 --config-settings 選項將多個鍵傳遞給後端。
* ==--global-option <options>==
在安裝或 bdist_wheel 命令之前,提供給 setup.py
參考:https://pip.pypa.io/en/stable/cli/pip_install/
### pip cache
```
pip cache list
# or
pip3 cache list
```
* remove a specific package
```
pip cache remove sklearn
# or
pip3 cache remove sklearn
```
```python
pip3 cache purge
# Check for the cache info
pip3 cache info
```