【Virtualenv】Python的虚拟环境Virtualenv和Virtualenvwrapper【原创】

目录

一、参考

二、概要

三、Virtualenv

优点

步骤

四、Virtualenvwrapper

优点

Windows下安装步骤

Linux下安装步骤

使用

五、Pycharm虚拟环境的使用


一、参考

聊聊 virtualenv 和 virtualenvwrapper 实践

virtualenv 虚拟环境

virtualenv和virtualenvwrapper总结

Virtuanenv官方文档

Virtualenvwrapper官方文档

二、概要

由于Python的版本众多,而且还有Python2和Python3的争论,另外一些依赖包也有兼容性问题,所以很多软件包或者是第三方库很容易出现版本不兼容的问题

可以通过Virtualenv工具很方便的构建出一系列虚拟的Python环境,然后在每个环境中安装需要的软件包(配合pip使用),这一系列的环境是相互隔离的,作为一个独立的环境就不容易出现版本问题,而且还很方便部署

如图所示:

核心要点:

  • 一个操作系统下,可以有多个'操作系统级别的'Python解释器;
  • 每个Python解释器有一个指向自己的pip工具,两者一一对应;
  • 通过virtualenv可以虚拟任何一个'操作系统级别的'Python解释器成为一个'虚拟级别'的解释器
  • 每个'虚拟级别'的解释器又拥有自己独立的pip工具和site-packages

环境

Python 3.7

Windows 10

三、Virtualenv

virtualenv为应用提供了隔离的Python运行环境,解决了不同应用间多版本的冲突问题。

优点

  • 使不同应用开发环境独立
  • 环境升级不影响其他应用,也不会影响全局的python环境
  • 它可以防止系统中出现包管理混乱和版本的冲突

步骤

1. 安装

pip install virtualenv

 

2. 创建虚拟环境

默认是创建在当前命令的目录下的

virtualenv  虚拟环境名

创建好了之后,当前目录下会有一个虚拟环境名的目录,该目录下有:(Windows)

  • Include
  • Lib
  • Scripts
  • tcl

注意:如果是Linux下的话,目录结构和Windows下的不太一样:

  • bin
  • include
  • lib

注意:如果有多个Python版本的话,可以加--python/-p指定python版本,后面跟着python版本的python.exe路径

注意:一个虚拟环境是一个文件目录,它可以链接python.exe文件、pip.exe文件和它所使用的python版本。在虚拟环境中安装的库只会存在于虚拟环境的目录里,而不会出现在全局的site-packages目录里。使用完虚拟环境后,可以将目录删除,所有的东西也随之消失了

注意:最好是针对每个Python项目都创建单独的虚拟环境,即每个Python项目都对应一个虚拟环境

注意:创建好的虚拟环境,默认安装有:pip,wheel和setuptools,有一些教程会建议使用 --no-site-packages来创建虚拟环境,这样创建出来的虚拟环境是没有这三个包的,但是 --no-site-packages已经在新版本的Virtualenv中废弃了,详情可以参考文档:https://virtualenv.pypa.io/en/latest/reference/#virtualenv-command

3. 激活虚拟环境

# Linux下
source 虚拟环境目录/bin/activate

# Windows下
虚拟环境目录/Scripts/activate

激活虚拟环境后就进入了一个隔离的环境,安装,卸载和使用模块,都会在虚拟环境中,而不会影响系统和其他环境。

4. 停止虚拟环境

deactivate

5. 删除虚拟环境

rmvirtualenv 虚拟环境名

# 或者
rm -rf 虚拟环境名

更多命令可以使用virtualenv --help或者是去参考官方文档:https://virtualenv.pypa.io/en/latest/reference/#virtualenv-command

四、Virtualenvwrapper

virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin/Scripts 目录下 source 一下 activate进行激活,这就需要我们记住每个虚拟环境所在的目录,一旦有多个项目的话,进行项目的切换非常的麻烦

一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/,并对不同的虚拟环境使用不同的目录来管理。virtualenvwrapper 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 source 操作,使得虚拟环境更加好用。

virtualenvwrapper是virtualenv的扩展管理包,用于更方便管理虚拟环境

优点

  • 将所有虚拟环境整合在一个目录下
  • 管理(新增,删除,复制)虚拟环境
  • 切换虚拟环境

Windows下安装步骤

1. 安装

pip install virtualenvwrapper-win

注意:Windows下需要安装virtualenvwrapper-win,而Linux下安装virtualenvwrapper

2. 建立虚拟环境总目录

virtualenvwrapper需要指定一个目录,是用来存放各种虚拟环境目录的目录(WORKON_HOME)

我这里使用 D://Envs 作为虚拟环境目录

mkdir d://Envs

3. 加入环境变量

通过计算机-->属性-->高级系统设置-->环境变量-->在系统变量中新建“变量名”:WORKON_HOME,变量值:D:\Envs

注意:如果不设置环境变量WORKON_HOME 的话,默认的虚拟环境是位于:C:\Users\username\envs

Linux下安装步骤

1. 安装

pip install virtualenvwrapper

默认安装地址:/usr/local/bin

注意:安装完成之后并不能直接使用virtualenvwrapper,还需要进一步进行环境设置

2. 建立虚拟环境总目录

virtualenvwrapper需要指定一个目录,是用来存放各种虚拟环境目录的目录

我这里使用 ~/.virtualenvs 作为虚拟环境目录

mkdir ~/.virtualenvs

3. 设置

virtualenvwrapper使用的时候,需要指定一下环境目录,并且需要source一下virtualenvwrapper.sh

export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh

由于每次都需要执行这两步操作,所以可以将其写入终端的配置文件中

vim ~/.bashrc

export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh

export VIRTUALENV_USE_DISTRIBUTE=1      # 总是使用pip/distribute
export WORKON_HOME=~/.virtualenvs       # 虚拟环境总目录

export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true

注意:如果是使用zsh的话,则需要vim ~/.zshrc

注意:如果virtualenvwrapper.sh文件的路径不确定的话,可以使用find / -name virtualenvwrapper.sh来查找对应的virtualenvwrapper.sh路径

4. 运行

source ~/.bashrc

使用

在虚拟环境总目录下创建虚拟环境

mkvirtualenv 虚拟环境名

默认创建在WORKON_HOME(虚拟环境总目录)下,而不是在当前目录下的

注意:可以加--python/-p指定python版本,后面跟着python版本的python.exe路径

注意:最好是针对每个Python项目都创建单独的虚拟环境,即每个Python项目都对应一个虚拟环境

相关命令:

删除环境

rmvirtualenv 虚拟环境名

激活环境/切换环境

workon 虚拟环境名

退出环境

deactivate

列出所有的环境

workon 

# 或者
lsvirtualenv -b

五、Pycharm虚拟环境的使用

在Pycharm中很方便的使用虚拟环境,Pycharm中可以指定解释器,直接将项目的Python解释器设置为对应环境中的Python解释器就行了

比如:

我在D:\Envs\下建立了一个虚拟环境za-devops-events

然后在Pycharm中打开对应的项目,设置->Settings-Project Interpreter,选择Add Project Interpreter,选择Existing environment,选择D:\Envs\za-devops-events\Scripts\python.exe

如图:

选择已有的虚拟环境:

选择虚拟环境的Pythoh文件:D:\Envs\za-devops-events\Scripts\python.exe,然后就可以了

发布了64 篇原创文章 · 获赞 47 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/jiandanokok/article/details/102768561