用 conda 管理 Python 开发环境 #26

Open
rainyear opened this Issue Mar 13, 2016 · 0 comments

Projects

None yet

1 participant

@rainyear
Owner

之前所有 Python 新项目都是用 python3 -m venv venv3 创建独立的虚拟环境,这次建一个基于 Jupiter 的科学计算环境,所以用到了 Anaconda

THE FASTEST GROWING OPEN DATA SCIENCE PLATFORM

Anaconda 提供一个管理工具 conda,可以把 conda 看作是 pip + virtualenv + PVM (Python Version Manager) + 一些必要的底层库,也就是一个更完整也更大的集成管理工具。

1. 下载、安装 Anaconda

如果只想用 conda ,可以下载简化版的 Miniconda,需要 Anaconda 可以安装完全版,一共大概 400 M,用阿里云服务器从官方网站下载大概要 6 个小时…不过还好清华大学 TUNA 镜像源提供了镜像:

# 下载时要看清楚 Anaconda3 还是 2,对应的是 Python 3.5 和 2.7
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/Anaconda3-2.5.0-Linux-x86_64.sh
bash Anaconda3-2.5.0-Linux-x86_64.sh

设定安装目录 /home/rainy/.anaconda3 并一路确认,会在 ~/.bashrc 添加环境变量,因为我用的是 zsh,所以需要在 ~/.zshrc 添加:

# added by Anaconda3 2.5.0 installer
export PATH="/home/rainy/.anaconda3/bin:$PATH"

conda --version
# conda 3.19.1

2. 创建(clone)新的环境

conda env list
# conda environments:
#
root                  *  /home/rainy/.anaconda3

conda create --name nb --clone root

conda env list
# conda environments:
#
nb                       /home/rainy/.anaconda3/envs/nb
root                  *  /home/rainy/.anaconda3

切换环境:

source activate nb
# discarding /home/rainy/.anaconda3/bin from PATH
# prepending /home/rainy/.anaconda3/envs/nb/bin to PATH

此时变成 (nb) $ ,和 virtualenv 一样,只是在退出时不太一样:

which python
/home/rainy/.anaconda3/envs/nb/bin/python
source deactivate
discarding /home/rainy/.anaconda3/envs/nb/bin from PATH

需要重新打开新的窗口才能再切换。现在查看已安装的 package 列表:

source active nb
conda list
# packages in environment at /home/rainy/.anaconda3/envs/nb:
#
abstract-rendering        0.5.1               np110py35_0
alabaster                 0.7.7                    py35_0
anaconda                  2.5.0               np110py35_0
anaconda-client           1.2.2                    py35_0
argcomplete               1.0.0                    py35_1
astropy                   1.1.1               np110py35_0
...

3. 配置新的 Jupyter

Anaconda 已经集成了 Jupyter,可以直接使用。Jupyter 默认的配置文件在 ~/.jupyter/jupyter_notebook_config.py,新的 Jupyter 也会从这里读取配置文件,官方文档里面写的 jupyter {application} --generate-config 并不是想象中的用法:

jupyter app --generate-config
jupyter: 'app' is not a Jupiter command

根据 Google 的结果,应该是:

JUPYTER_CONFIG_DIR=./jupyter_config jupyter --generate-config

编辑配置:

# vim ./jupyter_config/jupyter_notebook_config.py
c.NotebookApp.password = u'sha1:****'
c.NotebookApp.ip = 'my domain.com'
c.NotebookApp.port = 8888

启动:

JUPYTER_CONFIG_DIR=./jupyter_config jupyter notebook
@rainyear rainyear changed the title from 用 `conda` 管理 Python 开发环境 to 用 conda 管理 Python 开发环境 Mar 13, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment