---
# System prepended metadata

title: Pipenv
tags: [Python]

---

---
tags: Python
---
# Pipenv

[Pipenv](https://github.com/pypa/pipenv) 結合了 virtualenv 的虛擬環境與 pip 的套件管理，Pipenv 會自動幫忙管理虛擬環境以及依賴套件。

## 安裝

   ```shell
   $ pip install pipenv
   ```
   
## 應用

1. 在安裝時 Pipenv 會自動建置虛擬環境，以往的虛擬環境會在專案檔底下，而 Pipenv 則會建置在其他地方，同時會在專案目錄下創建 `Pipfile` 與 `Pipfile.lock` ，若已存在則會依照內容安裝，爾後再安裝或卸除套件時，兩個檔案都會自動修改。

   `Pipfile` ：依賴套件的基本資訊。
   
   `Pipfile.lock` ：詳細記載精確版本與訊息。
   
   ```shell
   $ pipenv install
   Creating a virtualenv for this project...
   ```

   `--python` 可以帶版本號。

   ```shell
   $ pipenv --python 3
   ```
   
2. 可以下指令找尋虛擬環境的位置。

   ```shell
   $ pipenv --venv
   /Users/<YOUR NAME>/share/virtualenvs/<VIRTUALENV>
   ```
   
3. 有兩種執行虛擬環境指令的方式：

   1. 在不進入虛擬環境的情況下直接執行指令。
   
      ```shell
      $ pipenv run <COMMAND>
      $ pipenv run python
      ```
      
   2. 啟動虛擬環境，可打 exit 或按 `Ctrl+D` 離開。
   
      ```shell
      $ pipenv shell 
      ```
      
4. 安裝套件，不管是不是在虛擬環境下，都可以進行安裝。

   ```shell
   $ pipenv install requests
   ```
   
   安裝完後可以在 `Pipfile` 內看到新增了 packages 的內容。
   
   ```
   [packages]
   requests = "*"
   ```
   
   若該套件只希望安裝在開發環境中，可以加上 `--dev` 的參數。
   
   ```shell
   $ pipenv install requests --dev
   ```
   
   ```
   [dev-packages]
   requests = "*"
   ```
   
5. 移除套件。

   ```shell
   $ pipenv uninstall requests
   ```
   
6. 刪除虛擬環境。

   ```shell
   $ pipenv --rm
   ```
   
更多詳細指令可以參考 [Pipenv Usage](https://github.com/pypa/pipenv#-usage) 。