Python环境管理

2018-01-25  本文已影响32人  CrazyTianC

Anacodna

Anaconda是一个用于科学计算的Python发行版,主要提供了包管理和环境管理的功能。

安装

官网下载后直接安装即可。安装时会自动帮你写入环境变量。
PS:Linux/Mac写入~/.bashrc,等同于Windows添加到系统变量PATH。

这步也可以自己操作:

# 将anaconda的bin目录加入PATH
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc

配置好之后通过conda --version检查是否安装正确。接着可以通过python --version检查python的版本的是否正确。

conda的环境管理

假如我们之前下载的Anaconda是2.7的版本,现在需要安装Python 3.6,我们可以进行如下操作:

# 创建一个名为python3的环境,指定Python版本是3.6以上的最新版
# 不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本
conda create --name python3 python=3.6

# 安装好后,使用activate激活环境
activate python3 # for Windows
source activate python3 # for Linux & Mac
# 此时系统做的就是把系统环境中的2.7移除,改为3.6的路劲

# 回到默认环境
deactivate python3 # for Windows
source deactivate python3 # for Linux & Mac

# 删除一个已有的环境
conda remove --name python3 --all

这样我们可以得到一个纯净的Python3.6的环境。但是如果我有一些包需要安装,或者就是想弄一个和之前完全一样的Anaconda3的版本,该怎么办呢?

# 安装anaconda3
conda create --name python3 python=3.6 anaconda
# 预安装numpy的python3.6
conda create --name python3 python=3.6 numpy

# 创建一个名为myenv的环境,安装numpy包。Python版本为默认的2.7
conda create -n myenv numpy

# 克隆一个默认环境,命名为python_copy
conda create -n python_copy --clone root

安装测试完成,最后可以通过conda info -e查看所有已经安装的环境。

conda的包管理

这部分功能和pip类似。

# 安装numpy
conda install numpy
# 安装anaconda
conda install anaconda

# 查找package信息
conda search numpy

# 更新package
conda update numpy

# 删除package
conda remove numpy

# 查看当前环境安装的packages
conda list

上述操作都是在默认的当前环境进行包管理,如果需要对特定的环境进行管理,可以加上环境名,例如:

conda install -n python3 numpy

conda update -n python3 numpy

conda remove -n python3 numpy

我们也可以使用conda来管理conda和python的版本,例如:

# 更新conda,保持conda最新
conda update conda

# 更新anaconda
conda update anaconda

# 更新python
# 假设当前环境是python 3.4, 则会升级为3.4.x的最新版本,不会升级到3.6
conda update python

设置镜像

由于服务器在国外,所以安装很多包的时候速度会很慢。这个时候我们可以使用清华TUNA镜像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

同样在pip中也会遇到这个问题:

# 直接使用
pip install --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

# 配置修改
# linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url至tuna
# windows下,在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini
# 添加内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

virtualenv

这里需要特别说明,如果你是在Anaconda的环境下,那么你是没有办法创建虚拟环境的。可以更改环境变量,或者如果想重新安装Python,请参考Python安装

安装virtualenv

pip install virtualenv

创建虚拟环境

# 创建了一个名为`myproject`的文件夹
mkdir myproject
cd myproject

# 创建虚拟环境venv
virtualenv --no-site-packages venv

命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

可使用 virtualenv --help 来查看如何使用。可以使用参数 --python=/usr/bin/python3 来创建一个已经安装的的Python环境。

激活虚拟环境

# linux
source  venv/bin/activate

# Windows
venv\scripts\activate

会发现命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。
我们可以使用pip安装各种第三方的包,而所有的包都只被安装到venv的环境下,系统Python环境不受任何影响,退出该环境这些包就没用啦。

退出环境

deactivate

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

Virtualenvwrapper

virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以将所有虚拟环境整合在一个目录下,更方便的管理和切换虚拟环境。

安装方法

# 安装
pip install virtualenvwrapper  

# 创建目录用来存放虚拟环境
mkdir ~/.virtualenvs

# 添加到环境变量
echo 'export WORKON_HOME=~/.virtualenvs' >> ~/.bashrc
# 路径是python的路径,默认是/usr/local/bin下
echo 'source /home/xxx/Python2.7/bin/virtualenvwrapper.sh'>> ~/.bashrc
# 更新
source ~/.bashrc

此时virtualenvwrapper就可以使用了。值得注意的是virtualenv创建的虚拟环境是不会在virtualenvwrapper上显示的。

使用方法

workon:列出虚拟环境列表

lsvirtualenv:同上

mkvirtualenv :新建虚拟环境

workon [虚拟环境名称]:切换虚拟环境

rmvirtualenv :删除虚拟环境

deactivate: 离开虚拟环境

更多请使用--help查看。

参考资料

上一篇下一篇

猜你喜欢

热点阅读