目錄
- 一、為什么需要虛擬環境?
- 二、virtualenv
- 三、venv
- 四、pipenv
一、為什么需要虛擬環境?
這里的環境,指的就是 Python 代碼的運行環境。它應該包含以下信息:
- Python 解釋器,用哪個解釋器來執行代碼?
- Python 庫的位置,該去哪里
import
所需要的模塊?
- 可執行程序的位置,比如說安裝了
pip
,那么 pip
命令是在哪里?
由于每個項目的情況都可能不一樣,比如這個項目用的是vtk 7.1,另一個項目用的是vtk 9.0。如果不進行環境隔離而是全局安裝,就會導致包的沖突從而出現問題,這個時候讓每個項目都擁有一套獨立的Python環境,這樣就不會產生沖突了。Python虛擬環境正是為了解決這個問題而存在的,簡而言之,虛擬環境就是系統 Python 環境的一個副本。
Python虛擬環境常見的工具為以下幾種:
二、virtualenv
virtualenv 是目前最流行的 Python 虛擬環境配置工具。它不僅同時支持 Python2 和 Python3,而且可以為每個虛擬環境指定 Python 解釋器,并選擇不繼承基礎版本的包。
virtualenv 的優點
- 使得不同Python應用的開發環境相互獨立
- 開發環境升級不影響其他應用的開發環境,也不會影響全局的環境(默認開發環境是全局開發環境),因為虛擬環境是將全局環境進行私有的復制,當我在虛擬環境進行 pip install 時,只會安裝到選擇的虛擬環境中。
- 它可以防止系統中出現包管理混亂和版本的沖突
1. pip 安裝 virtualenv
2. 創建虛擬環境目錄
mkdir myproject
cd myproject
3. 創建一個獨立的Python運行環境: myenv
virtualenv --no-site-packages myenv
# --no-site-packages 其意義在于不復制已經安裝到系統Python環境中的所有第三方包從而得到一個“純凈”的運行環境。
此時當前目錄下會生成一個名為:“myenv” 的目錄,該目錄中存放剛生成的虛擬環境文件
4. 激活虛擬運行環境
# Windows
myenv\Scripts\activate.bat
# Linux
source myenv/bin/activate
以上命令執行完后會發現命令提示符變了,有個(myenv)前綴,表示當前環境是一個名為“myenv”的Python環境,此時可以在該環境中按照我們熟悉的方式安裝庫、運行程序等
5. 使用deactivate命令退出當前的myenv環境
三、venv
Python 從3.3 版本開始,自帶了一個虛擬環境 venv,它的很多操作都和 virtualenv 類似,但是兩者運行機制不同。因為是從 3.3 版本開始自帶的,這個工具也僅僅支持 python 3.3 和以后版本。所以,要在 python2 上使用虛擬環境,依然要利用 virtualenv 。
1. pip安裝venv
# Windows
windows中venv已經以標準庫的形式存在,不用再單獨安裝
# Linux
sudo apt install python3-venv # 如有不同版本的Python3,可指定具體版本venv:python3.5-venv
2. 在當前目錄創建一個獨立的Python運行環境: myenv
# Windows
py -3 -m venv myenv
# Linux
python3 -m venv myenv
3. 激活虛擬運行環境
# Windows
myenv\Scripts\activate.bat
# Linux
source myenv/bin/activate
以上命令執行完后會發現命令提示符變了,有個(myenv)前綴,表示當前環境是一個名為“myenv”的Python環境,此時可以在該環境中按照我們熟悉的方式安裝庫、運行程序等

4. 使用deactivate命令退出當前的myenv環境
四、pipenv
pipenv 是 Pipfile 主要倡導者、requests 作者 Kenneth Reitz 寫的一個命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv,能夠有效管理Python多個環境,各種第三方包及模塊。
pipenv 的主要特性:
- pipenv集成了pip,virtualenv兩者的功能,且完善了兩者的一些缺陷。
- 過去用virtualenv管理requirements.txt文件可能會有問題,Pipenv使用Pipfile和Pipfile.lock,后者存放將包的依賴關系,查看依賴關系是十分方便。
- 各個地方使用了哈希校驗,無論安裝還是卸載包都十分安全,且會自動公開安全漏洞。
- 通過加載.env文件簡化開發工作流程。
- 支持Python2 和 Python3,在各個平臺的命令都是一樣的。
1. pip安裝pipenv
pip3 install pipenv # 全局安裝,如果只想在當前用戶模式下安裝,可添加參數:--user
# 更新
pip3 install --user --upgrade pipenv
注: 如果在使用當前用戶模式下安裝pipenv后在shell中提示不可用,則需要把用戶庫的目錄“C:\Users\XXX\AppData\Roaming\Python\Python37\Scripts”添加到你的PATH【系統環境路徑】中,然后重啟電腦,環境變量生效后即可使用。
2. pipenv創建虛擬環境說明
pipenv --two # 使用當前系統中的Python2 創建環境
pipenv --three # 使用當前系統中的Python3 創建環境
pipenv --python 3 # 指定使用Python3創建環境
pipenv --python 3.6 # 指定使用Python3.6創建環境
pipenv --python 2.7.14 # 指定使用Python2.7.14創建環境
1)創建環境時應使用系統中已經安裝的、能夠在環境變量中搜索到的Python 版本,否則會報錯。
2)每次創建環境都會在當前目錄下生成一個名為Pipfile文件,用來記錄剛創建的環境信息,如果當前目錄下之前存在該文件,會將其覆蓋。
3)在使用指定版本創建環境的時候,版本號與參數 --python 之間有個空格。
3. 創建Python3.8環境

激活虛擬環境
環境經激活后,會發現命令提示符變了(上圖中的“pyTest”前綴,表示生成了名為“pyTest”的虛擬環境)

4. 其他常用命令
pipenv --where # 顯示目錄信息
pipenv --venv # 顯示虛擬環境信息
pipenv --py # 顯示Python解釋器信息

pipenv install XXX # 安裝XXX模塊并加入到Pipfile
pipenv install XXX==1.11 # 安裝固定版本的XXX模塊并加入到Pipfile

pipenv graph # 查看目前安裝的庫及其依賴
pipenv check # 檢查安全漏洞
pipenv update --outdated # 查看所有需要更新的依賴項
pipenv update # 更新所有包的依賴項
pipenv update package_name # 更新指定的包的依賴項
pipenv uninstall XXX # 卸載XXX模塊并從Pipfile中移除
pipenv uninstall --all # 卸載全部包并從Pipfile中移除
pipenv uninstall --all-dev # 卸載全部開發包并從Pipfile中移除
退出當前虛擬環境
刪除虛擬環境
5. python 文件的運行
# 使用pipenv完整命令運行
pipenv run python xxx.py
# 在激活環境中運行
pipenv shell
python xxx.py
到此這篇關于簡單介紹Python虛擬環境及使用方法的文章就介紹到這了,更多相關Python虛擬環境內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python 中如何使用 virtualenv 管理虛擬環境
- python中如何使用虛擬環境
- python virtualenv虛擬環境配置與使用教程詳解
- Python venv虛擬環境配置過程解析
- 如何在mac下配置python虛擬環境
- 在Mac中配置Python虛擬環境過程解析
- Ubuntu20.04安裝Python3的虛擬環境教程詳解
- 解決python虛擬環境切換無效的問題