1. 程式人生 > 程式設計 >virtualenv介紹及簡明教程

virtualenv介紹及簡明教程

virtualenv簡介

在開發Python應用程式的時候,我們的系統上通常只會安裝一個Python版本:例如 3.7。所有使用 pip 安裝的第三方包都會被安裝到Python的site-packages目錄下。如果我們同時開發多個應用程式,而這些應用程式需要使用的某一個第三方包的版本各不相同,該怎麼辦?這種情況下,為每個應用程式“獨立”安裝一套Python執行環境顯然是不現實的。這個難題,使用 virtualenv 可以輕易解決。

virtualenv 是專門用來為應用程式維護多套相互“隔離”的Python執行環境的工具,藉助 virtualenv 我們可以在一臺主機上建立多套相互隔離的Python執行環境。

安裝virtualenv

安裝準備

安裝 virtualenv 之前需要先確認是否安裝好 python 和 pip 。

# python -V
Python 2.7.
 
# pip -V
pip 19.0.3 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)

pip安裝virtualenv

pip install virtualenv
# 或者
pip3 install virtualenv
 
# 檢查是否安裝成功
virtualenv --version
virtualenv 20.0.17 from /usr/local/python3/lib/python3.7/site-packages/virtualenv/__init__.py

常見問題: -bash: virtualenv: command not found

解決辦法:

# 找到 virtualenv 的安裝路徑
find / -name virtualenv
# /usr/local/python3/bin/virtualenv
# 建立軟連線
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv

virtualenv各種其他命令如下:

用法:

$ 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
定義隔離環境的命令列字首。

使用virtualenv

# 建立一個資料夾用來存放各個環境的相關檔案
mkdir envs
cd envs
 
# 建立一個名稱為 test_env 的不帶任何第三方包的獨立的Python執行環境
virtualenv test_env
# 或者
mkdir test_env
cd test_env
virtualenv .
 
# 進入環境
source test_env/bin/activate
(test_env) [root@hadoop34 envs]#
 
# 為環境安裝軟體包
(test_env) [root@hadoop34 envs]# pip install requests
 
# 退出環境
(test_env) [root@hadoop34 envs]# deactivate

綜上

virtualenv就是一個搭建虛擬化的python環境,便於不同的專案在同一臺機器上開發執行。

virtualenv更多的還是適用於本地開發不同的專案,但是在生產環境中還是使用docker給不同的專案建立不同的容器,各自分開執行為好,不宜放在一個單獨的物理機中執行。

到此這篇關於virtualenv介紹及簡明教程的文章就介紹到這了,更多相關virtualenv使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!