Python安装虚拟环境

在实际的工作中,我们同时做的项目通常不止一个,比如说,新项目是主要开发的项目,同时还需要对老项目进行一些小的功能迭代。

如果在一台电脑上,同时开发多个不同的项目,不同项目用到同一个库的不同版本,会有冲突。比如说老项目使用 django 1.11 ,新项目使用 django 2.2,这两个版本都是长期支持版(LTS),但是两个版本的有些用法不兼容。如果我们直接在电脑上安装 django 2.2 ,则 django 1.11直接被覆盖了,老项目就不能使用了。

为了解决这种情况,可以通过安装虚拟环境的方式来实现对不同项目的隔离。

安装虚拟环境可以搭建独立的 Python 运行环境,使每个项目的运行环境与其他项目的运行环境隔离开,互不影响。这样,在项目自己的虚拟环境中安装对应库的版本,不会影响到其他虚拟环境中同名库的使用。

一、windows安装虚拟环境

首先保证 windows 上已经安装有了 Python 和 pip 。

1. cmd 进入命令行,先安装 virtualenv 和 virtualenvwrapper-win

也可以不安装 virtualenvwrapper-win ,只用 virtualenv 就可以安装虚拟环境了,但是那种安装方式使用起来不是很方便。

pip install virtualenv --user
pip install virtualenvwrapper-win --user

Python安装虚拟环境_安装虚拟环境

2.使用 mkvirtualenv 命令来创建虚拟环境

# mkvirtualenv 虚拟环境名
mkvirtualenv vir_win

Python安装虚拟环境_Python虚拟环境_02

创建完成,会自动进入刚安装的虚拟环境中。命令行左边的括号表示当前所处的虚拟环境。

3. 创建虚拟环境后,会自动在用户家目录下创建一个Envs文件夹,用来存放虚拟环境,刚创建的虚拟环境目录就在里面。

进入刚创建的 vir_win 虚拟环境中,里面的目录结构如下图所示。

Python安装虚拟环境_Python安装虚拟环境_03

4. 使用 workon 可以查看当前安装有哪些虚拟环境,也可以使用 workon 接虚拟环境名进入指定的虚拟环境。

在当前的虚拟环境中,与在虚拟环境外一样,可以正常的使用 Python 。

Python安装虚拟环境_windows安装虚拟环境_04

5. 使用 pip list 查看当前虚拟环境中已安装的 Python 库

在虚拟环境中,安装的库是与外部隔离开的,在虚拟环境中可以直接使用 pip 来安装需要使用的库,安装后只在当前虚拟环境中生效。

这就能达到安装虚拟环境的目的了,生成一套独立的项目运行环境,避免与其他项目有冲突。

在项目使用虚拟环境时,可以在磁盘的任何位置创建项目的目录,只要选择对应的虚拟环境,项目就是运行在该虚拟环境中。

Python安装虚拟环境_linux安装虚拟环境_05

6. 在虚拟环境的目录中,有一个 Scripts 目录,里面是一些相关的可执行文件和脚本。

deactivate.bat 是用来退出虚拟环境的脚本,可以在任何地方调用 deactivate.bat 脚本退出虚拟环境。

activate.bat 是用来进入虚拟环境的脚本,不过必须要到 Scripts 目录下才能使用,因为只有在 Scripts 下才知道要进入的是哪个虚拟环境。如果需要在其他位置使用,可以配一下环境变量,但是那样只能进入配了环境变量的那个虚拟环境。

workon 跟虚拟环境名是最方便的方法,所以不用给 activate.bat 配环境变量,进入虚拟环境时使用这个方法。

Python安装虚拟环境_windows安装虚拟环境_06

二、Linux 安装虚拟环境

对于 Linux 环境,不管是 Redhat 还是 ubuntu ,安装方式都相同,下面以 Redhat 为例。

pip3 install virtualenv
pip3 install virtualenvwrapper

1. 使用 pip3 是为了指定安装在 Python3 中,这个根据自己环境的情况来使用。如果不是使用 root 账户,需要在命令前面加 sudo 。

Python安装虚拟环境_安装虚拟环境_07

2.安装完成后,还不能直接使用 mkvirtualenv ,需要先配置环境变量。

先在家目录下创建一个 .virtualenvs 目录用于存放虚拟环境,然后在 ~/.bashrc 中添加环境变量设置。在 ~/.bashrc 的最后加入下面的几行配置。

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

保存修改,然后执行 source ~/.bashrc 使配置生效。

Python安装虚拟环境_Python安装虚拟环境_08

3. 使用 mkvirtualenv 跟虚拟环境名来创建虚拟环境。可以通过 -p 参数指定使用的 Python 版本(windows也可以)。

# mkvirtualenv -p python3 虚拟环境名
mkvirtualenv -p python3 vir_linux

Python安装虚拟环境_Python虚拟环境_09

创建完成,会自动进入创建的虚拟环境中。

4.在虚拟环境中,可以像虚拟环境外一样使用 Python ,并且虚拟环境中安装的库是独立于外部的,可以在虚拟环境中安装需要使用的库。

Python安装虚拟环境_安装虚拟环境_10

5.可以使用 workon 来查看和切换虚拟环境。

退出虚拟环境使用 deactivate , 删除虚拟环境使用 rmvirtualenv (先退出才能删除)。

# 退出当前虚拟环境
deactivate
# 删除:rmvirtualenv 虚拟环境名
rmvirtualenv vir_linux

Python安装虚拟环境_windows安装虚拟环境_11

根据以上方法,可以在 windows 和 linux 中创建虚拟环境了,在开发中,为每个项目创建不同的虚拟环境,在独立的环境中开发。

 

Python安装虚拟环境_windows安装虚拟环境_12