banner
bladedragon

bladedragon

大道至簡——virtualenv介紹

由於python因其豐富的擴展庫而受到大家的青睞,但是當開發環境中的第三方包越來越多時,基於該開發環境開發的應用越來越難以移植、遷移。就像在操作系統中我們可以用容器(例如docker)將開發環境和生產環境分開,在做 python 的應用開發時,我們同樣需要為每個應用提供一個隔離的運行環境,從而避免增加不必要的版本衝突和排查成本。

virtualenv 就是幹這行的。

image

安裝#

安裝其實非常簡單。

首先你必須安裝好pip(裝 python 的時候沒有人不裝吧?)

然後輸入命令

pip3 install virtualenv

等待安裝完成就大功告成了!

注:Python3 已經內置了 venv 模塊,實際上不需要手動安裝即可。查看是否安裝

python3 -m venv --help

基本操作#

創建虛擬環境#

只要在自己希望創建虛擬環境的位置,輸入

virtualenv test

等待一段時間,即可創建一個名稱為 “test" 的虛擬環境,以後,在這個虛擬環境下下載第三方的包都會被放在這個文件夾下面。

下圖表示創建成功:

image

然後你的虛擬環境的所有配置都存放在 test 文件夾中,

默認的目錄結構如下(Windows 10 環境下)

- test
	- Inculde
	- Lib
	- Script
	- tcl
	- LICENCE.txt

舊版命令創建的虛擬環境會默認繼承實際環境存在的第三方包,如果需要創建一個乾淨的虛擬環境

輸入: virtualenv --no-site-packages test

新版默認創建無第三方包的純淨環境

進入虛擬環境#

windows系統進入Script文件夾,執行activate.bat文件

image

linux執行:

source test/bin/activate

test 是你創建的虛擬環境所在的文件夾

當命令行前面出現虛擬環境名說明已經切換到虛擬環境中,之後你安裝的第三方依賴包都會下載到這個虛擬環境中,從而不影響本機實際的 python 運行環境。實際上也是將這些依賴下載到這個虛擬環境所在的文件夾中

退出虛擬環境#

windows輸入

image

linux系統執行

source test/bin/deactive

交接環境#

這個做法比較常見,出現在你需要將自己的開發環境轉移到另外一台電腦或移交給某人的時候,需要將自己的虛擬環境拷貝到另外的地方

做法是

  1. 先凍結環境包,將包的版本信息保存在一個文本文件中
$ pip freeze > requirements.txt
  1. 在另外一個環境中直接下載所有依賴
$ pip install -r requirements.txt

其他命令#

用法:

$ virtualenv [OPTIONS] DEST_DIR 

選項:

–version 
#顯示當前版本號。 
-h, –help 
#顯示幫助信息。 
-v, –verbose 
#顯示詳細信息。 
-q, –quiet 
#不顯示詳細信息。 
-p PYTHON_EXE, –python=PYTHON_EXE 
#指定所用的python解析器的版本,比如 –python=python2.5 就使用2.5版本的解析器創建新的隔離環境。 默認使用的是當前系統安裝(/usr/bin/python)的python解析器 
–clear 
#清空非root用戶的安裝,並重頭開始創建隔離環境。 
–no-site-packages 
#令隔離環境不能訪問系統全局的site-packages目錄。 
–system-site-packages 
#令隔離環境可以訪問系統全局的site-packages目錄。 
–unzip-setuptools 
#安裝時解壓Setuptools或Distribute 
–relocatable 
#重定位某個已存在的隔離環境。使用該選項將修正腳本並令所有.pth文件使用相當路徑。 
–distribute 
#使用Distribute代替Setuptools,也可設置環境變量VIRTUALENV_DISTRIBUTE達到同樣效要。 
–extra-search-dir=SEARCH_DIRS 
#用於查找setuptools/distribute/pip發布包的目錄。可以添加任意數量的–extra-search-dir路徑。 
–never-download 
#禁止從網上下載任何數據。此時,如果在本地搜索發布包失敗,virtualenv就會報錯。 
–prompt==PROMPT 
#定義隔離環境的命令行前綴。 

組成#

再看一下 virtual 環境的目錄(Windows 10 環境下)

- [虛擬環境名]
	- Inculde
	- Lib
	- Script
	- tcl
	- LICENCE.txt
  • Include :
  • Lib:庫文件
  • Script: 腳本文件
  • tcl

首先介紹一下 python 的運行環境。

在 VScode 中愉快玩耍#

如何在VScode中部署virtual環境

第一種方法#

在項目的\.vscode\launch.json 文件裡加了一句:
"pythonPath": "D:\\myproject\\venv\\Scripts\\python.exe",

第二種方法#

本人親測有效

要在VScode中使用Pythonvirtualenv虛擬環境,首先在設置同添加虛擬環境所在目錄和虛擬環境的識別規則:

{
  ...
  "python.venvPath": "E:\\envs",
  "python.venvFolders": [
    "envs",
    ".pyenv",
    ".direnv',
    ".env"
  ]
}

之後當你想要切換虛擬環境的時候只需要通過命令面板Python: Select Interpreter就會列出所有的虛擬環境.

它其實是在你的項目根目錄下新建了一個 ./.vscode/settings.json 配置文件,將解釋器路徑選項寫在裡面了,該文件稱為工作區設置,可以針對每個項目單獨設置配置項。

第三種方法#

在命令行激活虛擬環境後,直接用 code 打開項目文件夾就行了。。。

XXX>venv\scripts\activate
(venv) XXX>code project_name/

使用 Visual Studio Code(VSCode)搭建簡單的 Python+Django 開發環境的方法步驟

VScode 中支持 Python 虛擬環境

在 vscode 中啟用 python 的 virtualenv

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。