更 Pythonic: 从 Conda 开始

栏目: Python · 发布时间: 6年前

内容简介:14 February 2019Conda是一个开源包管理系统和环境管理系统,有如下当家特点:不说其他特性,足以秒杀

14 February 2019

先忽悠上贼船

Conda是一个开源包管理系统和环境管理系统,有如下当家特点:

  • Python 版本的虚拟环境管理: virtualenvPython 下一个包,它只能创建所在的 Python 版本的环境,看看 Conda

    conda create --name mypy python=”随心所欲的指定版本,不用管 conda 的 python 版本“
  • 不仅仅管理 Python工具 包,它也能安装非 Python 的包。安装 numpy ,需要先装相关的 C 库?不存在,只有 pip 才需要, Conda 只要一条命令:

    conda install -c anaconda numpy

不说其他特性,足以秒杀 pipvirtualenv/virtualenv-wrapper (不用担心,上述的命令,将会在后面详细讲解)。

想要更 Pythonic 吗?跟我来

我的环境:

  • Ubuntu 18.04.2 LTS

是不很任性,没有任何前置要求。

1. 下载和安装 Anaconda

打开 Anaconda 官网 ,如下图:

更 Pythonic: 从 Conda 开始

选择你操作系统对应的安装包和 Python 版本:

  • 系统选择是 Linux :我的作业系统,你们选择你们使用的系统,此教程,在 macOs 测试过(如果 Windows 的用户安装遇到问题,请在评论区告知,不甚感激)
  • 选择 Python 3.7 version : 因为 Python 2 很快就要停止维护了,2020 年 Python 2 就要停止维护,不想到时痛苦,赶紧拥抱 Python 3 吧!不是我危言耸听,
ichexw@N3xt-Studio:~ $ wget https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh
ichexw@N3xt-Studio:~ $ sh ./Anaconda3-2018.12-Linux-x86_64.sh
ichexw@N3xt-Studio:~ $ ls ~/
anaconda3

根据他的提示完成安装,默认情况会安装用户根目录下,并在 ~/.bashrc 尾部看到:

# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/root/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
    \eval "$__conda_setup"
else
    if [ -f "/root/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/root/anaconda3/etc/profile.d/conda.sh"
        CONDA_CHANGEPS1=false conda activate base
    else
        \export PATH="/root/anaconda3/bin:$PATH"
    fi
fi

它会让 Conda 命令在你的命令行下可用。

接下来,我们要开始了。。。

2. 更新到最新版本

ichexw@N3xt-Studio:~ $ conda update -n base -c defaults conda

3. 环境管理

如果,你使用过 virtualenv ,这个就不会陌生。实际上, Conda 集成了 virtualenv/virtualenv-wrapper 的功能,你不需要另外安装。

3.1. 查看环境:

ichexw@N3xt-Studio:~ $ conda env list
# conda environments:
#
base                  *  /root/anaconda3
ichexw@N3xt-Studio:~ $ python --version
Python 3.7.1

这些都是自带的。

3.2. 创建环境

接着,我们创建一个名为 mypy 的环境,指定 Python 版本是 3.7(不用管是3.7.x,conda会为我们自动寻找3.7.x中的最新版本)

ichexw@N3xt-Studio:~ $ conda create --name mypy python=3.7
Solving environment: done
## Package Plan ##

  environment location: /root/anaconda3/envs/mypy

  added / updated specs:
    - python=3.7
    
The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    pip-19.0.1                 |           py37_0         1.8 MB
    ca-certificates-2019.1.23  |                0         126 KB
    setuptools-40.7.3          |           py37_0         610 KB
    python-3.7.2               |       h0371630_0        36.4 MB
    libedit-3.1.20181209       |       hc058e9b_0         188 KB
    ------------------------------------------------------------
                                           Total:        39.1 MB
...此处省略无数行
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate mypy
#
# To deactivate an active environment, use
#
#     $ conda deactivate

再次查看下,创建已有的环境

(mypy) ichexw@N3xt-Studio:~ $ conda env list
# conda environments:
#
base                 *   /root/anaconda3
mypy                    /root/anaconda3/envs/mypy

看到 mypy,说明我们创建成功了

激活创建好的环境:

(mypy) ichexw@N3xt-Studio:~ $ conda activate mypy

3.3. 安装 Python 包

(mypy) ichexw@N3xt-Studio:~ $ conda install -c anaconda flask -n mypy

命令解释:

  • -c: 代表安装的源,这里我们使用 anacoda 提供的 flask
  • -n: 这个可以省略,默认把包安装到当前激活的环境中,我们也可以指定特定的环境

pip 差不多。

3.4. 拷贝环境

(mypy) ichexw@N3xt-Studio:~ $ conda create -n mypy-backup --clone mypy

3.4. 导出环境

熟悉 pip 的用户应该很熟悉下面的操作:

pip freeze > requirements.txt # 依赖备份
pip install -r requirements.txt # 从备份安装

看看 conda 中怎么做!

(mypy) ichexw@N3xt-Studio:~ $ conda env export > environment.yml

environment.yml 内容如下:

name: mypy    # 环境名称
channels:     # 依赖的源
  - anaconda
  - defaults
dependencies: # 依赖
  - ca-certificates=2019.1.23=0
  - certifi=2018.11.29=py37_0
  - click=7.0=py37_0
  - flask=1.0.2=py37_1
  - itsdangerous=1.1.0=py37_0
  - jinja2=2.10=py37_0
  - markupsafe=1.1.0=py37h7b6447c_0
  - openssl=1.1.1=h7b6447c_0
  - werkzeug=0.14.1=py37_0
  - libedit=3.1.20181209=hc058e9b_0
  - libffi=3.2.1=hd88cf55_4
  - libgcc-ng=8.2.0=hdf63c60_1
  - libstdcxx-ng=8.2.0=hdf63c60_1
  - ncurses=6.1=he6710b0_1
  - pip=19.0.1=py37_0
  - python=3.7.2=h0371630_0
  - readline=7.0=h7b6447c_5
  - setuptools=40.7.3=py37_0
  - sqlite=3.26.0=h7b6447c_0
  - tk=8.6.8=hbc83047_0
  - wheel=0.32.3=py37_0
  - xz=5.2.4=h14c3975_4
  - zlib=1.2.11=h7b6447c_3
prefix: /root/anaconda3/envs/mypy #  还原的位置

根据自己需求修改 environment.yml

3.5. 根据 environment.yml 创建环境

ichexw@N3xt-Studio:~ $ conda env create -f environment.yml

3.6. 删除一个已有的环境

ichexw@N3xt-Studio:~ $ conda remove --name mypy --all

It’s Over! 很容易上手吧!


以上所述就是小编给大家介绍的《更 Pythonic: 从 Conda 开始》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

More Eric Meyer on CSS (Voices That Matter)

More Eric Meyer on CSS (Voices That Matter)

Eric A. Meyer / New Riders Press / 2004-04-08 / USD 45.00

Ready to commit to using more CSS on your sites? If you are a hands-on learner who has been toying with CSS and want to experiment with real-world projects that will enable you to see how CSS......一起来看看 《More Eric Meyer on CSS (Voices That Matter)》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换