python虚拟环境的作用_Python虚拟环境

Python虚拟环境的搭建与使用

前言

在开发中很多时候不同的项目会需要用的不同版本的包,甚至是不同版本的Python,而使用虚拟环境就可以轻松解决问题。虚拟环境通过创建一个全新的Python开发环境,从而实现不同项目间的隔离。

虚拟环境的搭建

virtualenvwrapper需要依赖virtualenv,所以先pip安装virtualenv,再pip安装virtualenvwrapper。virtualenvwrapper是基于virtualenv的扩展包,扩展包括创建和删除虚拟环境以及管理开发工作流的功能。

若是windows,使用pip install virtualenvwrapper-win,Linus使用pip install virtualenvwrapper

Linux下安装完后无法直接使用,会提示command not found。 使用前我们还需要修改环境配置文件,在.bashrc或.profile文件中加入三行代码:

export WORKON_HOME=$HOME/.virtualenvs

export PROJECT_HOME=$HOME/Devel

source /usr/local/bin/virtualenvwrapper.sh

参数说明:WORKON_HOME:表示存放虚拟环境的位置

PROJECT_HOME:表示项目工作目录的位置(使用mkproject命令时会用到)

source:待载入Shell文件的路径

source指向后缀为sh的脚本文件,在这里需要的是virtualenvwrapper.sh。同时要注意,不同系统中的路径可能不一样,find命令可以帮助我们找到需要的文件:

find / -name virtualenvwrapper.sh 上述命令表示在根目录下进行查找(即全盘查找)名为virtualenvwrapper.sh的文件,我查找的结果是/usr/bin/virtualenvwrapper.sh,所以source项可以填写这个:

find / -name virtualenvwrapper.sh

编辑完后执行 source ~/.bashrc 重新加载配置文件即可正常使用命令。顺带一提,配置文件重新加载后会自动创建.virtualenvs文件夹,却不会自动创建Devel文件夹,所以还是需要使用 mkdir $HOME/Devel 手动创建文件夹。 Win安装后需要设置环境变量,不过相比Linux下的设置相当的快捷。只需要创建两个环境变量: WORKON_HOME 和 PROJECT_HOME ,路径设定完成后就可以开始使用了。

虚拟环境的使用方法

这里仅重点介绍virtualenvwrapper的常用命令。

mkvirtualenv

在 WORKON_HOME 目录中创建一个新的虚拟环境。

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

参数说明: -i:指定一个或多个包 -a:指定一个项目目录,用于将该虚拟环境绑定至一个现有项目 -r:指定一个requirements文件,一般是由pip freeze所生成的,里面包括了需要用到的所有包 virtualenv options:参数将直接传递给virtualenv,详情参阅virtualenv官方文档 例如 mkvirtualenv env 会创建一个名为env的虚拟环境并激活,之后pip安装的所有包都仅仅存在于这个环境中。

mkproject

在 PROJECTHOME 目录中创建项目目录同时在 WORKON_HOME 目录下创建同名虚拟环境。

mkproject [-f | --force] [-t template] [virtualenv_options] ENVNAME

例如 mkproject env 会创建一个名为env的项目目录,同时被创建的还有它的同名虚拟环境,当前虚拟环境会被切换到新的虚拟环境,当前工作目录也会改变为新的项目目录。

setvirtualenvproject

将现有的虚拟环境绑定到现有的项目。

setvirtualenvproject [virtualenv_path project_path]

如果不指定参数,则默认为当前虚拟环境和当前目录作为参数,单个项目可以绑定多个虚拟环境,从而可以轻松地在不同的Python版本或依赖之间切换以进行测试。

rmvirtualenv

删除 WORKON_HOME 中的虚拟环境。

rmvirtualenv ENVNAME

例如 rmvirtualenv env 将会删除虚拟环境env。

workon

列出所有虚拟环境或更改当前工作中的虚拟环境。 workon [(-c|--cd)|(-n|--no-cd)] [environment_name|"."] 命令 workon 会列出所有可用的虚拟环境 命令 workon env 将会切换当前虚拟环境到虚拟环境env

deactivate

退出当前虚拟环境。

deactivate

其他命令

还有许多其他的命令,以下仅列出一部分: mktmpenv:创建一个临时的虚拟环境,停用后将会自动被清除 lsvirtualenv:列出所有可用环境 (showvirtualenv:显示单个虚拟环境的详细信息???) cdvirtualenv:将当前工作目录更改为虚拟环境的存放目录,可导航到子目录 cdproject:将当前工作目录更改为活动的虚拟环境所绑定的项目目录的目录 wipeenv:删除当前虚拟环境中所有已安装的第三方软件包

虚拟环境的使用实例

Python版本的的切换

假如我所使用的是Linux系统,自带Python2.7,许多软件包都会依赖老版本的Python,如果为了Python3.7覆盖原来的版本,那么很多软件可能会无法使用,这时可以通过参数-p来切换Python版本,-p后为指定的Python解释器:

mkvirtualenv -p /usr/local/python3.7/bin/python3 py3env1

这里我将Python3.7安装在了/usr/local/python3.7/目录下,根据不同的安装方式路径可能会有所不同。win7(64bit)下-p命令需要指定到python.exe 。

不同系统之间的项目转移

在虚拟环境中进行开发,最后使用

pip freeze > requirements.txt

将依赖包的信息进行保存,可以看到目录下会多出 requirements.txt 文件。将项目目录转移至目的系统后,重建并激活虚拟环境(Python版本需一致),在项目目录下执行命令

pip install -r requirements.txt

即可获得与之前开发时相同的依赖包和相同的环境。

一些疑问

其实我有个疑问,win版本和非win版本有什么区别,经过测试是都可以安装成功的(Windows),但是在仅安装virtualenvwrapper的情况下无法使用命令。在我卸载virtualenvwrapper-win的时候看到了些类似 workon.bat 的文件,推测win版本把命令用批处理实现了,相较而言Linux下的配置则要更为复杂。

---

---

虚拟环境的作用

在实际开发中,多个程序的运行可以能需要调试各种版本的不同环境,比如不同的python解释器,不同的flask版本

问题描述:如果直接进行多个版本安装,会导致后安装的内容覆盖先安装的.

解决办法:使用虚拟环境,不同的程序选择不同的环境,互不影响

搭建虚拟环境

查看当前电脑中是否有虚拟环境命令

virtualenv --version

安装虚拟环境的命令:

sudo pip install virtualenv

sudo pip install virtualenvwrapper

查看是否有mkvirtualenv创建虚拟环境指令

mkvirtualenv --version

安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量

# 创建目录用来存放虚拟环境

mkdir $HOME/.virtualenvs

# 打开~/.bashrc文件,并添加如下:

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

# 运行

source ~/.bashrc

创建虚拟环境的命令 : mkvirtualenv 虚拟环境名称(默认python2.x) 如:

mkvirtualenv py_flask

mkvirtualenv -p python3 虚拟环境名称(指定python3.x) 如:

mkvirtualenv -p python3 py3_flask

提示 :

创建虚拟环境需要联网

创建成功后, 会自动工作在这个虚拟环境上

工作在虚拟环境上, 提示符最前面会出现 “虚拟环境名称”

如何使用虚拟环境?

查看虚拟环境的命令: workon 两次tab键 或者 workon 回车

使用虚拟环境的命令: workon 虚拟环境名称 例 :workon py_flask 例 :workon py3_flask

退出虚拟环境的命令: deactivate

删除虚拟环境的命令(需要先退出): rmvirtualenv 虚拟环境名称 例 :删除虚拟环境py3_flask 先退出:deactivate 再删除:rmvirtualenv py3_flask

2.查看虚拟环境中安装的包 :

pip freeze

提示 : 工具包安装的位置 :

python2版本下:

~/.virtualenvs/py_flask/lib/python2.7/site-packages/

python3版本下:

~/.virtualenvs/py3_flask/lib/python3.5/site-packages

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值