美文网首页
Python环境管理

Python环境管理

作者: CrazyTianC | 来源:发表于2018-01-25 16:47 被阅读32次

    Anacodna

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

    • conda。是包管理与环境管理的工具,也可以理解为可执行命令。与pip的使用类似。conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身。
    • Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等。

    安装

    官网下载后直接安装即可。安装时会自动帮你写入环境变量。
    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查看。

    参考资料

    相关文章

      网友评论

          本文标题:Python环境管理

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