Ubuntu16.4版本中預設包含python2.7和Python3.5兩個版本,指令行中可以分别使用python和python3來啟動并進入各自環境。
virtualenv用于建立獨立的Python環境,使得多個Python互相隔離,互不影響,它能夠:
在沒有權限的情況下安裝python包
不同應用可以使用不同版本的python包
一個環境下的python包更新不影響其他環境
顧名思義,virtualenvwrapper則是對虛拟環境進行管理,是virtualenv的擴充包,它能夠:
将所有虛拟環境整合在一個目錄下
管理(新增,删除,複制)虛拟環境
切換虛拟環境
對于一台全新的Ubuntu電腦,可能還需要首先安裝pip,即python包管理器,指令如下。1
2sudo apt-get install python-pip
sudo apt-get install python3-pip # 對應python3
之後使用pip安裝virtualenvwrapper。1sudo pip install virtualenvwrapper
注意,系統預設采用python2,是以,如果使用pip3進行安裝,之後會報錯,此處按下不表。
配置virtualenvwrapper
virtualenvwrapper安裝完成之後需要對其進行簡單配置。1
2
3
4
5
6mkdir $HOME/.venvs
sudo vim ~/.bashrc
# 在打開的.bashrc檔案中添加如下2行:
export WORKON_HOME=$HOME/.venvs
source /usr/local/bin/virtualenvwrapper.sh
如果virtualenvwrapper是使用pip3進行安裝,則會報如下錯誤。
1
2
3
4
5
6
7/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.
If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
至此,virtualenvwrapper的安裝和配置告一段落。
使用virtualenvwrapper管理虛拟環境
基于不同的python版本建立虛拟環境1
2
3mkvirtualenv -p /usr/bin/python2 scrapy_py2 # 建立基于python2的虛拟環境scrapy_py2
mkvirtualenv -p /usr/bin/python3 scrapy_py3 # 建立基于python3虛拟環境scrapy_py3
# 如果提示mkvirtualenv權限問題,請檢查$HOME/.venvs檔案所屬的使用者群組。
建立成功之後系統預設進入目前虛拟環境,指令行字首顯示目前虛拟環境名稱。進入虛拟環境之後所有的操作都基于目前python環境,不會對其他python環境産生影響。
其他指令如下所示1
2
3
4workon # 列出所有的虛拟環境
workon scrapy_py2 # 切換到虛拟環境scrapy_py2
deactivate # 退出目前虛拟環境
rmvirtualenv scrapy_py2 # 删除虛拟環境scrapy_py2