
- Python基礎
- Python主頁
- Python概述
- Python歷史
- Python特性
- Python vs C++
- Python - Hello World程式
- Python應用領域
- Python直譯器
- Python環境搭建
- Python虛擬環境
- Python基本語法
- Python變數
- Python資料型別
- Python型別轉換
- Python Unicode系統
- Python字面量
- Python運算子
- Python算術運算子
- Python比較運算子
- Python賦值運算子
- Python邏輯運算子
- Python位運算子
- Python成員運算子
- Python身份運算子
- Python運算子優先順序
- Python註釋
- Python使用者輸入
- Python數字
- Python布林值
- Python控制語句
- Python控制流
- Python決策
- Python If語句
- Python If else
- Python巢狀If
- Python Match-Case語句
- Python迴圈
- Python for迴圈
- Python for-else迴圈
- Python while迴圈
- Python break語句
- Python continue語句
- Python pass語句
- Python巢狀迴圈
- Python函式與模組
- Python函式
- Python預設引數
- Python關鍵字引數
- Python僅限關鍵字引數
- Python位置引數
- Python僅限位置引數
- Python任意引數
- Python變數作用域
- Python函式註解
- Python模組
- Python內建函式
- Python字串
- Python字串
- Python字串切片
- Python修改字串
- Python字串連線
- Python字串格式化
- Python跳脫字元
- Python字串方法
- Python字串練習
- Python列表
- Python列表
- Python訪問列表元素
- Python修改列表元素
- Python新增列表元素
- Python刪除列表元素
- Python迴圈遍歷列表
- Python列表推導式
- Python排序列表
- Python複製列表
- Python合併列表
- Python列表方法
- Python列表練習
- Python元組
- Python元組
- Python訪問元組元素
- Python更新元組
- Python解包元組
- Python迴圈遍歷元組
- Python合併元組
- Python元組方法
- Python元組練習
- Python集合
- Python集合
- Python訪問集合元素
- Python新增集合元素
- Python刪除集合元素
- Python迴圈遍歷集合
- Python合併集合
- Python複製集合
- Python集合運算子
- Python集合方法
- Python集合練習
- Python字典
- Python字典
- Python訪問字典元素
- Python修改字典元素
- Python新增字典元素
- Python刪除字典元素
- Python字典檢視物件
- Python迴圈遍歷字典
- Python複製字典
- Python巢狀字典
- Python字典方法
- Python字典練習
- Python陣列
- Python陣列
- Python訪問陣列元素
- Python新增陣列元素
- Python刪除陣列元素
- Python迴圈遍歷陣列
- Python複製陣列
- Python反轉陣列
- Python排序陣列
- Python合併陣列
- Python陣列方法
- Python陣列練習
- Python檔案處理
- Python檔案處理
- Python寫入檔案
- Python讀取檔案
- Python重新命名和刪除檔案
- Python目錄
- Python檔案方法
- Python OS檔案/目錄方法
- Python OS路徑方法
- 面向物件程式設計
- Python - OOPs概念
- Python - 類與物件
- Python - 類屬性
- Python - 類方法
- Python - 靜態方法
- Python - 建構函式
- Python - 訪問修飾符
- Python - 繼承
- Python - 多型
- Python - 方法重寫
- Python - 方法過載
- Python - 動態繫結
- Python - 動態型別
- Python - 抽象
- Python - 封裝
- Python - 介面
- Python - 包
- Python - 內部類
- Python - 匿名類和物件
- Python - 單例類
- Python - 包裝器類
- Python - 列舉
- Python - 反射
- Python錯誤與異常
- Python - 語法錯誤
- Python - 異常
- Python - try-except塊
- Python - try-finally塊
- Python - 丟擲異常
- Python - 異常鏈
- Python - 巢狀try塊
- Python - 使用者自定義異常
- Python - 日誌記錄
- Python - 斷言
- Python - 內建異常
- Python多執行緒
- Python - 多執行緒
- Python - 執行緒生命週期
- Python - 建立執行緒
- Python - 啟動執行緒
- Python - 連線執行緒
- Python - 執行緒命名
- Python - 執行緒排程
- Python - 執行緒池
- Python - 主執行緒
- Python - 執行緒優先順序
- Python - 守護執行緒
- Python - 執行緒同步
- Python同步
- Python - 執行緒間通訊
- Python - 執行緒死鎖
- Python - 中斷執行緒
- Python網路程式設計
- Python - 網路程式設計
- Python - 套接字程式設計
- Python - URL處理
- Python - 泛型
- Python庫
- NumPy教程
- Pandas教程
- SciPy教程
- Matplotlib教程
- Django教程
- OpenCV教程
- Python雜項
- Python - 日期與時間
- Python - 數學
- Python - 迭代器
- Python - 生成器
- Python - 閉包
- Python - 裝飾器
- Python - 遞迴
- Python - 正則表示式
- Python - PIP
- Python - 資料庫訪問
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 輸出格式化
- Python - 效能測量
- Python - 資料壓縮
- Python - CGI程式設計
- Python - XML處理
- Python - GUI程式設計
- Python - 命令列引數
- Python - 文件字串
- Python - JSON
- Python - 傳送郵件
- Python - 擴充套件
- Python - 工具/實用程式
- Python - GUIs
- Python高階概念
- Python - 抽象基類
- Python - 自定義異常
- Python - 高階函式
- Python - 物件內部
- Python - 記憶體管理
- Python - 元類
- Python - 使用元類的超程式設計
- Python - 模擬和存根
- Python - 猴子補丁
- Python - 訊號處理
- Python - 型別提示
- Python - 自動化教程
- Python - Humanize包
- Python - 上下文管理器
- Python - 協程
- Python - 描述符
- Python - 診斷和修復記憶體洩漏
- Python - 不可變資料結構
- Python有用資源
- Python - 問答
- Python - 線上測驗
- Python - 快速指南
- Python - 參考
- Python - 速查表
- Python - 專案
- Python - 有用資源
- Python - 討論
- Python編譯器
- NumPy編譯器
- Matplotlib編譯器
- SciPy編譯器
Python虛擬環境
Python虛擬環境
Python虛擬環境在專案目錄中建立Python的虛擬安裝。使用者可以為每個專案安裝和管理Python包。這允許使用者安裝包並修改他們的Python環境,而無需擔心破壞其他環境中安裝的包。
什麼是Python虛擬環境?
Python虛擬環境是
- 被認為是可丟棄的。
- 用於包含支援專案所需的特定Python直譯器和軟體庫以及二進位制檔案。
- 包含在一個目錄中,通常在專案目錄中命名為venv或.venv。
- 不被認為是可移動或可複製的。
當您在計算機上安裝Python軟體時,它可以在檔案系統的任何位置使用。這是一個系統範圍的安裝。
在開發Python應用程式時,可能需要使用pip實用程式安裝一個或多個庫(例如,pip3 install somelib)。此外,一個應用程式(讓我們稱之為App1)可能需要特定版本的庫——比如somelib 1.0。同時,另一個Python應用程式(例如App2)可能需要相同庫的較新版本,比如somelib 2.0。因此,透過安裝新版本,App1的功能可能會因為同一庫的兩個不同版本之間衝突而受到影響。
可以透過在同一臺機器上提供兩個隔離的Python環境來避免這種衝突。這些被稱為虛擬環境。虛擬環境是一個單獨的目錄結構,包含隔離的安裝,其中包含Python直譯器、標準庫和其他模組的本地副本。
下圖顯示了使用虛擬環境的優勢。使用全域性Python安裝,建立多個虛擬環境,每個環境具有同一庫的不同版本,從而避免衝突。

使用venv在Python中建立虛擬環境
標準Python發行版中的venv模組支援此功能。使用以下命令建立一個新的虛擬環境。
C:\Users\Acer>md\pythonapp C:\Users\Acer>cd\pythonapp C:\pythonapp>python -m venv myvenv
這裡,myvenv是將建立一個新的Python虛擬環境的資料夾,顯示以下目錄結構:
Directory of C:\pythonapp\myvenv 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 <DIR> Include 22-02-2023 09:53 <DIR> Lib 22-02-2023 09:53 77 pyvenv.cfg 22-02-2023 09:53 <DIR> Scripts
啟用和停用虛擬環境的實用程式以及Python直譯器的本地副本將放在scripts資料夾中。
Directory of C:\pythonapp\myvenv\scripts 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 2,063 activate 22-02-2023 09:53 992 activate.bat 22-02-2023 09:53 19,611 Activate.ps1 22-02-2023 09:53 393 deactivate.bat 22-02-2023 09:53 106,349 pip.exe 22-02-2023 09:53 106,349 pip3.10.exe 22-02-2023 09:53 106,349 pip3.exe 22-02-2023 09:53 242,408 python.exe 22-02-2023 09:53 232,688 pythonw.exe
啟用虛擬環境
要啟用此新的虛擬環境,請在Scripts資料夾中執行activate.bat。
C:\pythonapp>myvenv\scripts\activate (myvenv) C:\pythonapp>
注意括號中的虛擬環境名稱。Scripts資料夾包含Python直譯器的本地副本。您可以在此虛擬環境中啟動Python會話。
檢查Python是否在虛擬環境中執行?
要確認此Python會話是否在虛擬環境中,請檢查sys.path。
(myvenv) C:\pythonapp>python Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs', 'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv', 'C:\\pythonapp\\myvenv\\lib\\site-packages'] >>>
此虛擬環境的scripts資料夾還包含pip實用程式。如果您從PyPI安裝包,該包將僅在當前虛擬環境中有效。
停用虛擬環境
要停用此環境,請執行deactivate.bat。