Python环境与库管理

作者: 保护青蛙 | 来源:发表于2017-06-03 17:39 被阅读75次

本文首发于微信公众号:Python库


朋友们在使用Python的时候可能会遇到这样的情况:公司里使用的版本是2,但自己却想体验Python3的特性,因此电脑上就需要安装两种不同的Python开发环境;或者是想使用的两种包相互冲突;又或者是自己有整理的习惯,希望web开发的环境和数据处理的环境能分别管理。。。。。。

这时候你就需要virtualenv这个工具的协助了

0x00 原理

virtualenv的原理很简单,它使用目录来管理不同的虚拟环境。换句话说,当建立一个新的环境ENV时,它会在当前目录新建ENV目录,并把系统中的Python安装目录拷贝到ENV下。当激活ENV环境时,便修改/usr/bin下的Python链接文件,使之链接到ENV中的程序。注销当前环境时,只要修改链接文件,使之复原即可。

0x01 安装

virtualenv的安装使用pip就行了,如果想更方便管理,也可安装virtualenvwrapper

$ pip install virtualenv

$ pip install virtualenvwrapper

0x02 使用virtualenv管理虚拟环境

创建虚拟环境时,在终端中输入virtualenv命令

$ virtualenv [虚拟环境名称,如:ENV]

运行后就可在当前目录找到ENV目录,这就是创建的虚拟环境了

- Python2还是Python3?

按以上方法创建的虚拟环境中,Python的版本和系统中的相同,如果当前使用的是Python3,而您又想使用Python2的话,需要加上-p参数

$ virtualenv -p python2 [虚拟环境名称]

- 包管理

如上所述,建立虚拟环境时,工具会将系统中的Python目录复制到环境中,自然也就包含所有的已安装第三方包,如果不想要某些包跟着复制过来,就需要使用--no-site-packages命令了

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

- 虚拟环境操作

在使用虚拟环境前需要先激活,假设已在当前目录建立了ENV

$ cd ENV

$ source ./bin/activate

这是终端输入行前面会多一个(ENV),这就表明现在使用的是ENV环境,此时使用pip安装的所有包都只在ENV中,不会对外界产生干扰。如果想退出当前环境,终端中运行deactivate命令即可。

倘若您确认已经不需要虚拟环境ENV了,删除ENV目录就能达到目的

0x03 使用virtualenvwrapper简化操作

virtualenvwrapper默认安装在/usr/local/bin目录下,安装文件为virtualenvwrapper.sh,每次使用前都需要运行这个文件!为了避免手动操作的麻烦,最好让它开机运行。

首先建立一个统一的文件夹来存放虚拟环境

$ mkdir $HOME/.virtualenvs

然后对~/.bashrc文件进行设置,它在当前用户登陆后运行

添加行:export WORKON_HOME=$HOME/.virtualenvs

添加行:source /usr/local/bin/virtualenvwrapper.sh

修改后运行

$ source ~/.bashrc

创建虚拟环境

$ mkvirtualenv [虚拟环境名称]

启动、切换或列出虚拟环境

$ workon [虚拟环境名称]

不输入虚拟环境名称,则列出所有已建立的

注销当前环境

$ deactivate [当前虚拟环境名称]

删除虚拟环境前须保证不处于激活状态

$rmvirtualenv [虚拟环境名称]

0x04 写了这么多,点个赞鼓励一下呗

​谢谢!

相关文章

网友评论

    本文标题:Python环境与库管理

    本文链接:https://www.haomeiwen.com/subject/kwrmfxtx.html