---
# System prepended metadata

title: Pip 套件管理工具 ＆ 虛擬環境 venv

---

Pip 套件管理工具 ＆ 虛擬環境 venv
==

## Pip 套件管理工具

    pip list
    # 列出所有已安裝的套件明細
    
    pip install --upgrade pip  
    # 更新pip
    
    pip install 套件名  
    # 安裝套件
    
    uninstall 套件名  
    # 移除套件

## 為什麼要用虛擬環境 venv？

解決套件新舊版本不能同時存在的問題
例如：安裝django 4.0，再安裝django 5.0的話，原本django 4.0就會被移除掉，系統只能留一套

## 如何在venv虛擬環境內安裝套件

1. 建立一個新的虛擬環境目錄

        $ python -m venv abc (--prompt="Hi")
        
        # -m venv 載入venv虛擬環境       
        # abc 自己取一個虛擬環境目錄資料夾的名字
        # (--prompt="Hi") 不一定要加，目的是變更終端機的虛擬環境顯示的名字

    ![image](https://hackmd.io/_uploads/H1izuZ-KR.png)
    .venv 虛擬環境目錄名
    .venv/bin/activate
    .venv/lib/Django (套件安裝在這)

2. 進入虛擬環境 

        $ source abc/bin/activate
        
        # abc 自己改成上方建立的資料夾名字
    
3. 安裝套件
 
        $ pip install django==5.0
        # 安裝套件及指定版本
        
        $ pip install requests django
        # 可以一次裝 requests 和 django 兩個套件的最新版本

4. 列出套件明細
   檢查是否安裝成功＆安裝的版本

        $ pip list

5. 退出虛擬環境

        deactivate        


## 建立相同的開發環境，用 requirements.txt 管理套件相依性

1. 輸出套件列表
  
        $ pip freeze > requirements.txt
        
        # 檔名自訂，通常會用requirements.txt
        # 紀錄環境內所有已安裝的套件及版本，輸出成文字檔

![image](https://hackmd.io/_uploads/H1zPIzWKA.png)

2. 重建虛擬環境

        $ python -m venv abc

3. 進入虛擬環境

        $ source abc/bin/activate

4. 重新安裝所有套件

        $ pip install -r requirements.txt
        
        # 安裝檔案內的所有套件及版本，建立相同的開發環境
