virtualenv 虚拟环境安装

问题:工作中开发新项目时,把代码从gitlab上拉到服务器后,需要给项目新建1个虚拟环境,然后安装项目所需要的依赖。所以这里记录一下安装虚拟环境的方法

 

方法:

一、virtualenv 虚拟环境安装

   virtualenv 工具可以用来在 Linux 操作系统中创建一个虚拟的Python环境。这个环境是独立的、隔离的,拥有自己的环境安装目录(而不是把所有的第三方包等都安装在 /usr/lib/python3.4/site-packages 目录(Python3.4的默认Linux安装目录)下)。
   它可以用来解决Python项目开发和运行过程中的依赖项和版本问题,而不必和其他项目的Python环境以及全局的Python环境发生冲突。

1、安装 virtualenv

建议使用 pip 工具安装 virtualenv 包:

$ pip install virtualenv

 

2、创建虚拟环境

安装完成后,可以使用 virtualenv 命令创建放置虚拟环境的目录:

$ virtualenv  [OPTIONS]  [虚拟环境名称]
  virtualenv 虚拟环境安装  

创建原理:

   在目录 ENV 里会初始化虚拟环境的相关目录和文件,包括 Python 语言本身的环境以及 pip 等相关程序都会在这个目录里创建(拷贝)一份新的。

  virtualenv 虚拟环境安装  

ENV/libENV/include 目录中包含了虚拟环境ENV使用的库文件。在虚拟环境中安装的第三方包会安装在 ENV/lib/python3.4/site-packages 目录下。
ENV/bin 目录里面放置了可执行文件,在里面有新安装的Python 包中的可执行程序,包括pip等相关工具。


OPTIONS:

--no-site-packages 参数:

   默认情况下,虚拟环境会依赖系统环境中的 sit package,就是说系统中已经安装好的第三方 package 也会安装在虚拟环境中,如果不想依赖这些 package,那么可以加上 --no-site-packages 参数建立虚拟环境。

$  virtualenv --no-site-packages [虚拟环境名称]
  virtualenv 虚拟环境安装  

 

--system-site-packages 参数:

   如果你使用 --system-site-packages 参数创建虚拟环境,你创建的虚拟环境会继承 /usr/local/python34/lib/python3.4/site-packages

$ virtualenv --system-site-packages ENV
  virtualenv 虚拟环境安装  

 

--extra-search-dir 参数:

   如果你使用 --extra-search-dir 参数创建虚拟环境,这允许你提供自己的 setuptools 版本,而不是使用虚拟环境中嵌入的版本。

$ virtualenv --extra-search-dir=/path/to/distributions ENV

/path/to/distributions 参数:
   指定一个包含 setuptools 以及 pip、wheels 等的目录。virtualenv 命令会在指定的目录中,寻找 wheels,但是会使用 pip 的标准的算法来选择安装的 wheel。

除了指定的目录,搜索顺序还包含:
1、相对于virtualenv.py 的 virtualenv_support 目录;
2、virtualenv.py 所在的目录;
3、当前目录;

--version 显示软件的版本号:

# virtualenv --version

 

-h, --help 显示帮助信息:

# virtualenv -h

 

-p PYTHON_EXE, --python=PYTHON_EXE 指定生成的虚拟环境使用的Python解释器:

   默认的使用的是安装 virtualenv 的 Python 解释器

# virtualenv -p /usr/bin/python2.6 ENV
  virtualenv 虚拟环境安装  

--no-setuptools 在新建的虚拟环境中不安装工具包:

# virtualenv --no-setuptools ENV

 

  virtualenv 虚拟环境安装  

 

--no-pip 在新建的虚拟环境中不安装pip:

# virtualenv --no-pip ENV

 

  virtualenv 虚拟环境安装  

 

--no-wheel 在新建的虚拟环境中不安装 wheel:

# virtualenv --no-wheel ENV

 

  virtualenv 虚拟环境安装  

 

--extra-search-dir=DIR 指定安装新的虚拟环境时寻找工具包、pip等的目录路径,这个参数可以用来多次指定:

# virtualenv --extra-search-dir=/usr/local/python34/bin/ ENV

 

  virtualenv 虚拟环境安装  

 

--prompt=PROMPT 可以为创建的虚拟环境指定提示前缀:

# virtualenv --prompt="测试" test

 

  virtualenv 虚拟环境安装  
  virtualenv 虚拟环境安装  

 

3、启动环境

在新创建的虚拟环境目录中,有一个启动脚本 ENV/bin/activate ,直接使用 source 命令来启动我们新创建的虚拟环境。

$ source ENV/bin/activate
  virtualenv 虚拟环境安装  

   这条命令修改了当前用户的环境变量 $PATH,将我们新建的虚拟环境目录 ENV/bin/ 作为第一个元素添加到了 $PATH 中。因为在Linux系统中输入命令时,命令可执行文件的搜索路径是根据 $PATH 中配置的路径的先后顺序来的,所以接下来你执行的所有命令都将是 ENV/bin/ 中的命令(如果此目录中存在这个命令的话),新安装的模块都只会安装到该目录(ENV)中去。

  virtualenv 虚拟环境安装  
  virtualenv 虚拟环境安装  

active 脚本也会修改当前用户的命令行显示,在头部会显示出当前使用的虚拟环境。

4、退出和删除环境

如果要退出当前虚拟环境,使用 deactivate 命令:

$ deactivate
  virtualenv 虚拟环境安装  

如果需要删除我们创建的虚拟环境,只需要退出,并删除创建的文件夹即可:

$ deactivate
$ rm -r /path/to/ENV



二、安装 virtualenvwrapper 扩展包

Virtaulenvwrapper 是 virtualenv 的扩展包,可以把新创建的环境记录下来,不需要每次启动虚拟环境时都执行一遍 source 命令,可以更方便的管理虚拟环境。

它可以实现:
1、将所有虚拟环境整合在一个目录下
2、管理(新增,删除,复制)虚拟环境
3、快速切换虚拟环境

1、安装 virtualenvwrapper :

1.1 建议适用 pip 安装:

$ pip install virtualenvwrapper 

1.2 进入 用户主目录,打开 .bashrc 文件,添加如下代码:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
  virtualenv 虚拟环境安装  

WORKON_HOME:
   告诉 virtualenvwrapper 在哪里放置你的虚拟环境,默认是在 $HOME/.virtualenvs 目录下。如果这个目录不存在,virtualenvwrapper 运行的时候会自动创建它。

PROJECT_HOME :
   告诉virtualenvwrapper在哪里存放你的项目的工作目录。

1.3 然后执行 source 命令,使刚添加的代码生效:

$ source .bashrc

 

2、使用 virtualenvwrapper

虚拟环境相关操作:

workon: 列出虚拟环境列表
mkvirtualenv [虚拟环境名称]: 新建虚拟环境
workon [虚拟环境名称]: 切换虚拟环境
rmvirtualenv [虚拟环境名称]: 删除虚拟环境
deactivate: 离开虚拟环境

2.1 使用 workon 命令,列出可以使用的虚拟环境:

$ workon

 

  virtualenv 虚拟环境安装  

 

2.2 使用 mkvirtualenv 命令,创建新的虚拟环境:

mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME

除了-a , -i, -r, -h 所有的命令中的选项都会直接传递给virtualenv,新的虚拟环境在初始化后会自动激活(也就是进入该虚拟环境)。

$ mkvirtualenv ENV
  virtualenv 虚拟环境安装  

-a 选项:可以将一个现有的项目关联到新建的虚拟环境

$ mkvirtualenv -a phone/ phone
  virtualenv 虚拟环境安装  

-i 选项:可以在虚拟环境创建后安装一个或多个包
-r选项:可以指定一个列出了要安装那些包的文件,这个参数相当于pip 的 -r 参数。

2.3 使用 mktmpenv 命令自动生成一个唯一的名称:

mktmpenv [(-c|--cd)|(-n|--no-cd)] [VIRTUALENV_OPTIONS]

$ mktmpenv 

 

  virtualenv 虚拟环境安装  

 

2.4 lsvirtualenv 命令详细的列出我们创建的虚拟环境

$ lsvirtualenv

 

  virtualenv 虚拟环境安装  

 

2.5 showvirtualenv 显示某个虚拟环境的细节描述

$ showvirtualenv  cms

 

2.6 rmvirtualenv 删除 WORKON_HOME 里的一个虚拟环境

在你删除虚拟环境之前,必须先离开这个虚拟环境。

$ rmvirtualenv  ENVNAME

 

  virtualenv 虚拟环境安装  

 

2.7 allvirtualenv 在WORKON_HOME里的所有虚拟环境中执行一条命令:

allvirtualenv command with arguments

$ allvirtualenv pip install -U pip

 

2.8 workon 切换一个虚拟环境

$ workon environment_name
  virtualenv 虚拟环境安装  

如果后面没有给出虚拟环境的名称,则会列出可以使用的虚拟环境

$ workon

 

  virtualenv 虚拟环境安装  

 

2.9 deactivate 退出当前使用的虚拟环境

$ deactivate

 

  virtualenv 虚拟环境安装  

 

2.10 virtualenvwrapper 打印出可以使用的命令,及简单的描述信息

  virtualenv 虚拟环境安装

作者:常大鹏
链接:https://www.jianshu.com/p/2857638f039d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上一篇:新电脑配置 python 环境


下一篇:nodejs+socket.io初体验