Anaconda 和 Jupyter的一些小技巧

在机器学习的各类教程中,都会提到Anaconda,这是一个集中式安装机器学习各类环境和类库的工具,能简化机器学习环境的部署,对小白来说尤其方便。
只要装了Anaconda,一系列包括Python、pip、Numpy、Scikit-learn、Tensorflow、Jupyter Notebook等等海量的Library都可以通过Anaconda来组织与管理。当然Anaconda最大的功能之一就是创建多个Python运行环境,譬如Python 3.5+Tensorflow,或者Python 3.7 + Torch,在Pycharm等IDE中创建Project时,可以选择不同的环境,每个环境依然需要安装对应的Python和Packages。
最近发现在MacOS上安装的Anaconda中的环境和包都不一致,出现了一个未知的Jupyter Kernel,虽然不影响使用,但折腾了半天,终于删除掉,特此记录。

通过命令行查看Anaconda的环境信息

首先通过Anaconda的图形界面可以操作环境的创建与删除。
也有很多功能是命令行操作进入命令行模式,常用命令如下:

  • 检测anaconda环境是否安装成功:conda –version
  • 检测目前安装了哪些环境变量:conda info –envs
  • 查看当前有哪些可以使用的tensorflow版本:conda search –full -name tensorflow
  • 查看tensorflow包信息及依赖关系:conda info tensorflow
  • 删除tensorflow包信息及依赖关系 conda remove tensorflow

在Anaconda中安装Package,譬如TensorFlow

  • 进入Anaconda图形界面或命令行创建名为“ML”的Python 3.7环境,
  • 安装Python3.7: conda create –name ML python=3.7
  • 激活TensFlow的“ML”环境: activate ML,默认的环境是base(root)
  • 检测“ML”的环境添加到了Anaconda里面:conda info –envs,看到“ML”已经创建成功。
  • 检测当前环境中的Python的版本:Python –version
  • 退出ML的环境:deactivate
  • 在ML环境中正式安装TensorFlow包
  • 激活TensFlow的ML环境: activate ML
  • 在特定环境中安装特定包。譬如在Tensorflow这个环境中安装tushare一个股票分析软件,需要执行以下几步:首先需要conda activate Tensorflow,可以看到命令行界面切入大量ML这个环境,此时运行pip install tushare,tushare这个包就会装在Tensorflow这个环境中。
(base) localhost~ % conda activate Tensorflow
(Tensorflow) localhost ~ % pip install tushare
  • 安装Tensorflow。pip install –upgrade –ignore-installed tensorflow
  • 验证功能。在上述Python和TensorFlow的环境中,创建Jupyter Notebook,粘贴测试代码测试:
import tensorflow as tf
hello = tf.constant('hello,tf')
sess = tf.Session()
print(sess.run(hello))

Anaconda与Jupyter Notebook 组合

在之前的步骤已经创建了一个机器学习的环境(Python 3.7 + TensorFlow),名字为“ML”,并且已经在这个环境中安装了ipykernel了,这也是交互式Python环境的核心模块,前台Web界面中运行Jupyter Notebook,可以编写Python交互式代码。这个Jupyter Notebook的后台进程称为Kernel,在这个Kernel中要使用前边创建的“ML”这个Python环境,可以执行下面的代码手动添加ML的Python开发环境到Jupyter Notebook中:
python -m ipykernel install –user –name ML –display-name "ML"
这里,第一个“ML”是之前在Anaconda中创建的Python虚拟环境的名称,后面的“ML”是我希望在Jupyter Notebook中Kernel显示的名字,在Jupyter Notebook的Web运行界面中,新创建一个Notebook,可以选择这个ML名称的环境,也可以选择其他Anaconda创建的环境。
执行完这条代码后,皆大欢喜 。

最后,系统中如果有残留的kernel可以通过命令行删掉。

Jupyter Kernel 的相关操作

Kernel是运行Jupyter Notebook的后台进程,可以启停Kernel,也可以选择Kernel用到哪一个Conda Environment。常用操作如下:
注意,在MacOS系统有时会找不到conda、jupyter等命令,由于MacOS采用zshell,可能Anaconda在安装时把init的脚本写入到了.bash_profile,需要粘贴复制到.zshrc中,这样zshell初始化过程中就会运行脚本初始化anaconda的环境变量。

  • 列出所有Kernel
    jupyter kernelspec list

  • Available kernels:
    ml /Users/wtao/Library/Jupyter/kernels/ml
    python3 /opt/anaconda3/share/jupyter/kernels/python3

  • 删掉某个kernel环境配置,如果从pycharm来的参与spec可以在这里删掉。
    jupyter kernelspec remove ML

Jupyter Notebook Extension 插件 – 代码补全

Jupyter Notebook 有一些插件,可以实现常见的代码函数自动补全、文档导航、文档目录、代码款折叠等功能,需要安装nbextensions插件。

# 安装
conda install jupyter notebook
conda install -c conda-forge jupyter_nbextensions_configurator
conda install -c conda-forge jupyter_contrib_nbextensions
# 启用
jupyter nbextensions_configurator enable —user
# 卸载
conda install jupyter notebook
conda remove --force jupyter_nbextensions_configurator
conda remove --force jupyter_contrib_nbextensions

安装完成后,Jupyter Notebook上就有一个NBExtension的标签,打开配置,选择所需要的功能。

如图所示,代码补全Hinterland、TOC目录、Snippets(代码片段)等打开,每个功能在页面中都有用法和简介。

暂无评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


虚拟化 | 云计算 | 机器学习 | 股市复盘
© 2024 涛哥,版权所有, 京ICP备20014492-2号