virtualenv的安裝和使用
轉載請注明 來源:http://www.eword.name/
Author:eword
Email:eword@eword.name
virtualenv的安裝和使用
一、virtualenv的作用
在開發Python應用程序的時候,每個應用可能需要各自擁有一套“獨立”的Python運行環境,來使用各自需要的不同Python版本。virtualenv就是用來為一個應用創建一套“隔離”的Python運行環境。
二、安裝virtualenv
使用pip安裝virtualenv:
$ pip3 install virtualenv
如果安裝完后,執行virtualenv提示:virtualenv: command not found。
添加虛鏈接到/url/local/bin下。
# 查詢virtualenv安裝路徑
$ which virtualenv
# 例如安裝路徑如下
# /Users/ewordeword.name/Library/Python/3.9/bin/virtualenv
# 添加虛鏈接
$ ln -s /Users/ewordeword.name/Library/Python/3.9/bin/virtualenv /usl/loacl/bin
三、如何創建獨立的Python運行環境
第一步,創建目錄:
Mac:~ eword$ mkdir tutorial
Mac:~ eword$ cd tutorial/
Mac:tutorial eword$
第二步,創建一個獨立的Python運行環境,命名為venv:
Mac:tutorial eword$ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.
命令virtualenv就可以創建一個獨立的Python運行環境,我們還加上了參數--no-site-packages,這樣,已經安裝到系統Python環境中的所有第三方包都不會復制過來,這樣,我們就得到了一個不帶任何第三方包的“干凈”的Python運行環境。
四、進入獨立的Python運行環境
新建的Python環境被放到當前目錄下的venv目錄。有了venv這個Python環境,可以用source進入該環境:
Mac:tutorial eword$ source venv/bin/activate
(venv)Mac:tutorial eword$
注意到命令提示符變了,有個(venv)前綴,表示當前環境是一個名為venv的Python環境。
五、獨立的Python運行環境下安裝第三方包
正常安裝各種第三方包,并運行python命令:
(venv)Mac:tutorial eword$ pip install django
...
(venv)Mac:tutorial eword$ django-admin.py startproject tutorial
...
在venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統Python環境不受任何影響。從此可見,venv環境是專門針對tutorial這個應用創建的。
六、退出獨立的Python運行環境
使用deactivate命令退出當前的venv環境:
(venv)Mac:tutorial eword$ deactivate
Mac:tutorial eword$
此時就回到了正常的環境,現在pip或python均是在系統Python環境下執行。
七、原理
virtualenv創建“獨立”的Python運行環境的原理如下:
- 把系統Python復制一份到virtualenv的環境;
- 用命令
source venv/bin/activate進入一個virtualenv虛擬環境; - virtualenv虛擬環境下被修改的環境變量,讓命令
python和pip均指向當前的virtualenv虛擬環境。
綜述
virtualenv為應用提供了隔離的Python運行環境,解決了不同應用間多版本的沖突問題。
引用列表

浙公網安備 33010602011771號