在ubuntu16下安装virtualenv+virtualenvwrapper

ubuntu16已经安装好了py2和py3(自带的)

bigni@bigni-Latitude-E6230:~/python_file/Django_project$ python
python             python2-config     python3.5m         python3m-config
python2            python3            python3.5m-config  python-config
python2.7          python3.5          python3-config     
python2.7-config   python3.5-config   python3m  

我要用的是py3,所以安装virtulenv+virtualenvwrapper,我用的是pip3,使用:apt-get install python3-pip

可以完成

通过pip安装virtualenv:

$ pip3 install virtualenv

测试你的安装

$ virtualenv --version
使用virtualenv这里就不多说,继续安装virtualenvwrapper
pip3 install virtualenvwrapper
要想使用virtualenvwrapper,需要启动virtualenvwrapper.sh脚本,一般是放在
/usr/local/bin/virtualenvwrapper.sh
不过我安装后没找到,用find命令搜到是在 $HOME/.local/bin/virtualenvwrapper.sh
打开家目录下的.bashrc 在最底部加上下面这一段:
#python虚拟环境配置
export VIRTUALENV_USE_DISTRIBUTE=1        #  总是使用 pip/distribute                                                                                   
#export WORKON_HOME=$HOME/.local/virtualenvs       # 所有虚拟环境存储的目录             
if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then
       export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 #指定py3 source $HOME/.local/bin/virtualenvwrapper.sh else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then source /usr/local/bin/virtualenvwrapper.sh fi fi export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true

PS: 我的VIRTUALENVWRAPPER_PYTHON变量指向的是py3,

启动source ~/.bashrc ,出现下面信息,说明环境配置好了。

bigni@bigni-Latitude-E6230:~/python_file/Django_project$ source ~/.bashrc
virtualenvwrapper.user_scripts creating /home/bigni/Envs/initialize
virtualenvwrapper.user_scripts creating /home/bigni/Envs/premkvirtualenv
virtualenvwrapper.user_scripts creating /home/bigni/Envs/postmkvirtualenv
virtualenvwrapper.user_scripts creating /home/bigni/Envs/prermvirtualenv
virtualenvwrapper.user_scripts creating /home/bigni/Envs/postrmvirtualenv
virtualenvwrapper.user_scripts creating /home/bigni/Envs/predeactivate
virtualenvwrapper.user_scripts creating /home/bigni/Envs/postdeactivate
virtualenvwrapper.user_scripts creating /home/bigni/Envs/preactivate
virtualenvwrapper.user_scripts creating /home/bigni/Envs/postactivate
virtualenvwrapper.user_scripts creating /home/bigni/Envs/get_env_details
virtualenvwrapper.user_scripts creating /home/bigni/Envs/premkproject
virtualenvwrapper.user_scripts creating /home/bigni/Envs/postmkproject

测试下:创建虚拟环境:second_project

bigni@bigni-Latitude-E6230:~/python_file/Django_project$ mkvirtualenv second_project
Using base prefix '/usr'
New python executable in /home/bigni/.virtualenvs/second_project/bin/python3
Also creating executable in /home/bigni/.virtualenvs/second_project/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/second_project/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/second_project/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/second_project/bin/preactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/second_project/bin/postactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/second_project/bin/get_env_details

进入虚拟环境, 安装requests

bigni@bigni-Latitude-E6230:~/python_file/Django_project$ workon second_project
(second_project) bigni@bigni-Latitude-E6230:~/python_file/Django_project$ pip
pip     pip2    pip3    pip3.5  
(second_project) bigni@bigni-Latitude-E6230:~/python_file/Django_project$ pip3 install requests
Collecting requests
  Using cached requests-2.18.3-py2.py3-none-any.whl
Collecting idna<2.6,>=2.5 (from requests)
  Using cached idna-2.5-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Using cached chardet-3.0.4-py2.py3-none-any.whl
Collecting urllib3<1.23,>=1.21.1 (from requests)
  Using cached urllib3-1.22-py2.py3-none-any.whl
Collecting certifi>=2017.4.17 (from requests)
  Using cached certifi-2017.7.27.1-py2.py3-none-any.whl
Installing collected packages: idna, chardet, urllib3, certifi, requests
Successfully installed certifi-2017.7.27.1 chardet-3.0.4 idna-2.5 requests-2.18.3 urllib3-1.22
(second_project) bigni@bigni-Latitude-E6230:~/python_file/Django_project$ 

或者,你可以创建一个项目,它会创建虚拟环境,并在 $PROJECT_HOME 中创建一个项目目录。 当你使用 workon myproject 时,会 cd -ed 到项目目录中。

bigni@bigni-Latitude-E6230:~$ vim .bashrc 
bigni@bigni-Latitude-E6230:~$ source .bashrc 
bigni@bigni-Latitude-E6230:~$ mkproject third_project
Using base prefix '/usr'
New python executable in /home/bigni/.virtualenvs/third_project/bin/python3
Also creating executable in /home/bigni/.virtualenvs/third_project/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/third_project/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/third_project/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/third_project/bin/preactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/third_project/bin/postactivate
virtualenvwrapper.user_scripts creating /home/bigni/.virtualenvs/third_project/bin/get_env_details
Creating /home/bigni/.virtualenvs/third_project
Setting project for third_project to /home/bigni/.virtualenvs/third_project
(third_project) bigni@bigni-Latitude-E6230:~/.virtualenvs/third_project$ 

virtualenvwrapper 提供环境名字的tab补全功能。当你有很多环境, 并且很难记住它们的名字时,这就显得很有用。

workon 也能停止你当前所在的环境,所以你可以在环境之间快速的切换。

  1. 停止是一样的:
$ deactivate
  1. 删除:
$ rmvirtualenv my_project

其他有用的命令

lsvirtualenv
列举所有的环境。
cdvirtualenv
导航到当前激活的虚拟环境的目录中,比如说这样你就能够浏览它的 site-packages
cdsitepackages
和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages
显示 site-packages 目录中的内容。

virtualenvwrapper 命令的完全列表




export PROJECT_HOME=$HOME/.virtualenvs