美文网首页
Anaconda虚拟环境实践(1)——安装、创建/复制虚拟环境

Anaconda虚拟环境实践(1)——安装、创建/复制虚拟环境

作者: zbharper | 来源:发表于2019-01-15 16:01 被阅读0次

    Anaconda 是一个python的开源发布版本,最早使用它是因为其中集成了很多用于科学计算、数据分析及机器学习的python库,可以省去很多安装软件包的麻烦。但是anaconda真正的利器在于其中的conda包管理工具,它可以帮助我们方便的管理自己的python开发环境,不仅能够将不同开发项目所依赖的开发环境完全独立开来,还可以轻易的复制整个python环境到其他机器。这样,python开发项目的部署就变成了一件非常简单且易于维护的事情。

    Anaconda的安装

    官网上下载Linux_64bit python2.7版本的安装脚本到本地,用root权限执行该脚本,随后一路回车完成安装。

    这里有个需要注意的地方:

    当前版本的Anaconda安装脚本为Anaconda-2018.12-Linux-x86_64.sh,安装完成后,在.bashrc里并没有更新PATH环境变量,输入python会发现找不到该命令(linux系统没有预装python的情况下)。同时注意到.bashrc里加入了一个脚本

    . /home/deepctrl/anaconda2/etc/profile.d/conda.sh
    

    我们可以在当前shell环境下输入conda命令,但是输入which conda又没有输出,说明conda不是一个系统可执行文件,而是在./~bash.sh中加入的conda.sh脚本中的一个函数。

    ——对比之前使用的Anaconda版本(Anaconda2-5.2.0-Linux-x86_64.sh)安装完成后,~/.bashrc中更新了PATH变量(加入了anaconda2/bin路径),可以直接在当前环境下执行python、conda等可执行文件。

    新版这个安装变动后,我们不能默认使用conda的base环境,而是必须要输入conda activate激活base环境后,才能进入到base的python开发环境中。这样base环境和用户自定义环境的隔离就更显式了(以前的版本下,可能安装完anaconda后稀里糊涂就开始用了,没有进入任何虚拟环境),有利于后续的管理。

    创建新环境

    手动创建一个全新环境
    conda create -n new_env --python=2.7 ipython  # 制定python版本,预安装ipython
    
    激活并进入自定义环境
    conda activate new_env
    

    在该环境下进入ipython,测试numpy,发现没有该模块(在base环境中可以导入)说明两个环境是隔离的。进一步测试,在该环境下安装redis

    conda install redis redis-py
    

    随后测试redis可用

    (new_env) deepctrl@localhost:~$ redis-cli --version
    redis-cli 3.2.0
    (new_env) deepctrl@localhost:~$ python -c "import redis;print redis.__version__"
    3.0.1
    

    回到base环境conda activate base,再次测试redis,提示未安装

    (base) deepctrl@localhost:~$ redis-cli --version
    The program 'redis-cli' is currently not installed. You can install it by typing:
    sudo apt install redis-tools
    

    简单测试验证了conda环境间的隔离,各自安装软件互不影响。

    复制环境

    有两种办法复制环境:

    一,在本机上,直接使用conda create -n new_env --clone old_env复制既有环境
    二,如果要复制到其他机器,就要考虑导出当前环境到文件,利用文件再次创建环境

    1) 导出环境

    conda env export > ~/env.yaml
    

    利用conda env export 导出的是个yaml格式的文件,该文件记录了环境名,软件源地址以及安装包列表
    2) 使用yaml配置文件创建新环境

    conda env create -f ~/env.yaml
    

    在新的机器中可直接执行上述命令,生成的环境与复制源完全一样(包括环境名),如果想在同一台机器上复制,需要把yaml文件中的环境名修改为一个新的名字,否则会冲突。
    【注】还有一种复制环境的方式
    conda list --explicit > env.txt
    conda create -n newenv -f env.txt
    这种方式只能复制环境中以conda install安装的包,不能复制pip install安装的包,因此不建议使用。

    相关文章

      网友评论

          本文标题:Anaconda虚拟环境实践(1)——安装、创建/复制虚拟环境

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