(数据科学学习手札81)conda+jupyter玩转数据科学环境搭建

本文示例yaml文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes

1 简介

  我们在使用Python进行数据分析时,很多时候都在解决环境搭建的问题,不同版本、依赖包等问题经常给数据科学工作流的搭建和运转带来各种各样令人头疼的问题,本文就将基于笔者自己摸索出的经验,以geopandas环境的搭建为例,教你使用conda+jupyter轻松搞定环境的搭建、管理与拓展。

图1

2 虚拟环境的搭建与使用

2.1 使用conda创建虚拟环境

  以Windows操作系统为例,因为全程主要使用命令行,所以其他系统方法类似,有少许语句有差异的地方遇到问题时可以自行查找解决。首先我们要解决的是环境的创建,第一步需要安装conda服务,这里我们有Anacondaminiconda两种方式,本文选择miniconda体积小巧,不会像Anaconda那样自带数量众多的科学计算相关包而显得臃肿。

  有条件上外网的读者朋友可以在官网( https://docs.conda.io/en/latest/miniconda.html )下载与你的操作系统对应的安装包,也可以在清华大学镜像站-获取下载链接-应用软件-Condahttps://mirrors.tuna.tsinghua.edu.cn/ )中下载对应的最新的安装包:

图2

  本文选择的是从官网下载的最新版本4.8.2,因为miniconda自带Python,之后所有新环境的创建我们都可以通过conda来实施,所以建议你在安装之前系统中不要保有其他Python环境。下载完成之后直接打开安装,一路可以按照默认的选项继续,到图3显示的步骤时为了方便之后的使用建议都勾选上:

图3

  完成安装后我们进入控制台输入conda --version检查是否成功安装:

C:\Users\hp>conda --version
conda 4.8.2

  输入conda env list查看当前存在的所有环境:

C:\Users\hp>conda env list
# conda environments:
#
base                  *  C:\Conda

  可以看到我们当前只有1个环境base,即miniconda自带的Python,因为图3中我们勾选了Register Miniconda3 as the system Python 3.7,所以在控制台中直接输入python可以得到下列结果:

C:\Users\hp>python
Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
>>> quit() # 退出

C:\Users\hp>

  控制台输入conda list可以看到当前仅有的base环境中仅有下列包:

C:\Users\hp>conda list
# packages in environment at C:\Conda:
#
# Name                    Version                   Build  Channel
asn1crypto                1.3.0                    py37_0    defaults
ca-certificates           2020.1.1                      0    defaults
certifi                   2019.11.28               py37_0    defaults
cffi                      1.14.0           py37h7a1dbc1_0    defaults
chardet                   3.0.4                 py37_1003    defaults
conda                     4.8.2                    py37_0    defaults
conda-package-handling    1.6.0            py37h62dcd97_0    defaults
console_shortcut          0.1.1                         4    defaults
cryptography              2.8              py37h7a1dbc1_0    defaults
idna                      2.8                      py37_0    defaults
menuinst                  1.4.16           py37he774522_0    defaults
openssl                   1.1.1d               he774522_4    defaults
pip                       20.0.2                   py37_1    defaults
powershell_shortcut       0.0.1                         3    defaults
pycosat                   0.6.3            py37he774522_0    defaults
pycparser                 2.19                     py37_0    defaults
pyopenssl                 19.1.0                   py37_0    defaults
pysocks                   1.7.1                    py37_0    defaults
python                    3.7.6                h60c2a47_2    defaults
pywin32                   227              py37he774522_1    defaults
requests                  2.22.0                   py37_1    defaults
ruamel_yaml               0.15.87          py37he774522_0    defaults
setuptools                45.2.0                   py37_0    defaults
six                       1.14.0                   py37_0    defaults
sqlite                    3.31.1               he774522_0    defaults
tqdm                      4.42.1                     py_0    defaults
urllib3                   1.25.8                   py37_0    defaults
vc                        14.1                 h0510ff6_4    defaults
vs2015_runtime            14.16.27012          hf0eaf9b_1    defaults
wheel                     0.34.2                   py37_0    defaults
win_inet_pton             1.1.0                    py37_0    defaults
wincertstore              0.2                      py37_0    defaults
yaml                      0.1.7                hc54c509_2    defaults

  接下来我们开始来搭建本文用于举例说明的geopandas环境,使用conda create -n 环境名称 python=版本来创建新的环境,譬如这里我们创建名为python_spatial的虚拟环境,Python版本选择3.7

C:\Users\hp>conda create -n python_spatial python=3.7

  遇到Proceed ([y]/n)?输入y继续,等相关资源下载并安装配置完成后,再次查看当前存在的所有环境:

C:\Users\hp>conda env list
# conda environments:
#
base                  *  C:\Conda
python_spatial           C:\Conda\envs\python_spatial

  可以看到与之前相比多了我们刚刚创建好的python_spatial环境,使用conda activate 环境名称来激活指定的环境:

C:\Users\hp>conda activate python_spatial

(python_spatial) C:\Users\hp>

  可以发现这时命令行开头多了(python_spatial),这代表我们已经进入激活的python_spatial环境中,接着我们就可以使用conda命令在当前环境中安装geopandas,按照官网的推荐方式从conda-forge对应的channel进行安装,执行conda install --channel conda-forge geopandas,遇到需要选择的地方一样地输入y,这里依赖包较多,需要等待较长时间,直到最后done出现表示安装成功,在控制台中直接进入python,检查geopandas是否正确安装:

(python_spatial) C:\Users\hp>python
Python 3.7.7 (default, Mar 23 2020, 23:19:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Type "help", "copyright", "credits" or "license" for more information.
>>> import geopandas as gpd
>>>

  至此,我们已经完成了geopandas基础环境的搭建,接下来我们来配置使用jupyter

2.2 配置jupyter lab

  类似condajupyter也分为jupyter notebookjupyter lab,两者核心功能都差不多,但jupyter lab拥有更多的拓展功能,并且界面和操作方式也更加炫酷方便,所以本文选择jupyter lab,在上一节中创建好的python_spatial环境下使用conda install jupyterlab安装基础部分,安装结束之后,在python_spatial环境下可以通过执行jupyter lab来打开它,在此之前需要先为jupyter lab配置虚拟环境,否则只能识别到默认的base环境。

  • 安装ipykernel

    退出虚拟环境后执行conda install ipykernel

  • 为虚拟环境安装ipykernel

    执行conda install -n python_spatial ipykernel

  • 激活虚拟环境&将虚拟环境写入jupyter的kernel中
C:\Users\hp>conda activate python_spatial

(python_spatial) C:\Users\hp>python -m ipykernel install --user --name python_spatial --display-name
   "spatial"
Installed kernelspec python_spatial in C:\Users\hp\AppData\Roaming\jupyter\kernels\python_spatial

(python_spatial) C:\Users\hp>

  这时我们在jupyter lab中已经可以切换到python_spatial环境了,接下来为了使用jupyter lab的插件拓展,需要安装nodejs,我们在python_spatial下执行conda install nodejs即可,完成安装之后根据自己对插件功能的需要可以分别安装不同的插件,下面举几个常用的例子:

  • html交互部件插件

    为了在jupyter lab中渲染一些html部件,譬如tqdm中的交互式进度条,在虚拟环境下执行下列命令:

pip install ipywidgets
jupyter labextension install @jupyter-widgets/jupyterlab-manager

  完成后执行jupyter lab,在打开的操作界面中notebook下点击python_spatial创建新的notebook,执行如下命令(提前安装好tqdm),可以看到出现了交互式的进度条:

图4

  • 目录插件

    ipynb文件中可以用markdown编写各级别标题,在使用下列插件自动生成目录:

jupyter labextension install @jupyterlab/toc

图5

  • matplotlib交互式绘图

    使用matplotlib交互式绘图模式:

pip install ipympl
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib

  安装完成后就可以使用%matplotlib widget开启交互式绘图模式(请提前安装好geopandas绘图依赖包descartes):

图6

你也可以在侧边栏中发现更多的实用插件:

图7

2.3 虚拟环境的备份和恢复

  conda提供了将虚拟环境导出为yaml文件的功能,使得我们可以保留好不容易创建好的虚拟环境中的配置信息,格式如conda env export > 导出路径\文件名.yml,譬如我们导出前面创建好的python_spatial到所需路径下:

(python_spatial) C:\Users\hp>conda env export > C:\Users\hp\Desktop\python_spatial.yml

(python_spatial) C:\Users\hp>

  之后你可以在安装好conda服务的其他机器上按照conda env create -n 新环境名称 -f=路径\文件名.yml,譬如我们就在本机上用已经导出的python_spatial.yml复制为新的虚拟环境,耐心等待之后conda会自动完成前面所有我们手动实现的步骤:

conda create -n new_python_spatial -f=C:\Users\hp\Desktop\python_spatial.yml

  之后只需要像前文中一样执行python -m ipykernel install --user --name new_python_spatial --display-name "new spatial"从而为jupyter lab添加新的虚拟环境的kernel信息,在new_python_spatial环境下启动jupyter lab,这是我们可使用的环境变成了3个:

图8

2.4 虚拟环境的移除

  使用conda remove -n 环境名称 --all 来移除已经创建的环境,譬如我们使用conda remove -n new_python_spatial -allnew_python_spatial移除之后,再次查看所有环境:

C:\Users\hp>conda env list
# conda environments:
#
base                  *  C:\Conda
python_spatial           C:\Conda\envs\python_spatial

  但这时会存在一个恼人的地方,我们这里只是移除了虚拟环境,但前面注册到jupyter lab中的kernel还会显示,但实际上是没有对应环境存在的,所以强行选择已经移除的环境对应的kernel会报错:

图9

  控制台中使用jupyter kernelspec list查看信息:

C:\Users\hp>jupyter kernelspec list
Available kernels:
  new_python_spatial    C:\Users\hp\AppData\Roaming\jupyter\kernels\new_python_spatial
  python_spatial        C:\Users\hp\AppData\Roaming\jupyter\kernels\python_spatial
  python3               C:\Conda\share\jupyter\kernels\python3

  接着使用jupyter kernelspec remove kernel名称对其进行移除即可:

C:\Users\hp>jupyter kernelspec remove new_python_spatial
Kernel specs to remove:
  new_python_spatial    C:\Users\hp\AppData\Roaming\jupyter\kernels\new_python_spatial
Remove 1 kernel specs [y/N]: y
[RemoveKernelSpec] Removed C:\Users\hp\AppData\Roaming\jupyter\kernels\new_python_spatial

  之后在启动jupyter lab就会发现残余的kernel跟着消失了。

  以上就是本文的全部内容,对应的yaml文件已上传至文章开头的Github仓库中,你可以直接基于它创建对应本文python_spatial的虚拟环境。

原文地址:https://www.cnblogs.com/feffery/p/12609118.html

时间: 2024-10-10 15:30:16

(数据科学学习手札81)conda+jupyter玩转数据科学环境搭建的相关文章

(数据科学学习手札32)Python中re模块的详细介绍

一.简介 关于正则表达式,我在前一篇(数据科学学习手札31)中已经做了详细介绍,本篇将对Python中自带模块re的常用功能进行总结: re作为Python中专为正则表达式相关功能做出支持的模块,提供了一系列方法来完成几乎全部类型的文本信息的处理工作,下面一一介绍: 二.re.compile() 在前一篇文章中我们使用过这个方法,它通过编译正则表达式参数,来返回一个目标对象的匹配模式,进而提高了正则表达式的效率,主要参数如下: pattern:输入的欲编译正则表达式,需将正则表达式包裹在''内传

(数据科学学习手札47)基于Python的网络数据采集实战(2)

一.简介 马上大四了,最近在暑期实习,在数据挖掘的主业之外,也帮助同事做了很多网络数据采集的内容,接下来的数篇文章就将一一罗列出来,来续写几个月前开的这个网络数据采集实战的坑. 二.马蜂窝评论数据采集实战 2.1 数据要求 这次我们需要采集的数据是知名旅游网站马蜂窝下重庆区域内所有景点的用户评论数据,如下图所示: 思路是,先获取所有景点的poi ID,即每一个景点主页url地址中的唯一数字: 这一步和(数据科学学习手札33)基于Python的网络数据采集实战(1)中做法类似,即在下述界面: 翻页

(数据科学学习手札55)利用ggthemr来美化ggplot2图像

一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原生ggplot2图像进行美化,掌握它之后你就可以创作出更具特色和美感的数据可视化作品. 二.基础内容 2.1 安装 不同于常规的R包,ggthemr并没有在CRAN上发布,因此我们需要使用devtools中的install_github()直接从github上安装它,参照github上ggthemr

大数据好学习吗?如何快速掌握大数据开发技能

大数据好学习吗?如何快速掌握大数据开发技能?经常被学员问到:大数据好学吗?想学大数据怕学不会等问题.我想说的是,大数据在当下是个非常热门的话题,大数据在深刻的影响着这个世界,在促进传统行业升级改造.引领新兴产业和新兴应用蓬勃发展.提升社会运行和管理效率等方面,大数据正引发新一轮革命.大数据是时代潮流,如果学一下就会了,那大数据行业现在恐怕已经被挤破门槛了吧,想学大数据还是得下苦功夫才行. 想学大数据,先把这几个技能学会再说: Apache Hive2.1 Hive是建立在Hadoop上的数据仓库

OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建

# OpenCV学习系列(零) Mac下OpenCV + xcode环境搭建 [-= 博客目录 =-] 1-学习目标 1.1-本章介绍 1.2-实践内容 1.3-相关说明 2-学习过程 2.1-homebrew安装 2.2-使用homebrew安装CMake 2.3-源码安装OpenCV 2.4-xcode配置与测试 2.5-基础问题回答 3-资料 1-学习目标 1.1-本章介绍 因为不可抗力(╯﹏╰),最近去图书馆借了一本<OpenCV编程案例详解>,准备学习OpenCV的使用,因为身患懒癌

(数据科学学习手札19)R中基本统计分析技巧总结

在获取数据,并且完成数据的清洗之后,首要的事就是对整个数据集进行探索性的研究,这个过程中会利用到各种描述性统计量和推断性统计量来初探变量间和变量内部的基本关系,本篇笔者便基于R,对一些常用的数据探索方法进行总结: 1.描述性统计量部分 1.1 计算描述性统计量的常规方法 summary() summary()函数提供了最小值.最大值.四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计: > #挂载鸢尾花数据 > data(iris) > #计算鸢尾花各变量的基本描述统计量 &

(数据科学学习手札23)决策树分类原理详解&amp;Python与R实现

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法.由于这种决策分支画成图形很像一棵树的枝干,故称决策树.在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系. 一.初识决策树 决策树是一种树形结构,一般的,一棵决策树包含一个根结点,若干个内部结点和若干个叶结点: 叶结点:树的一个方向的最末端,表示结果的输出: 根结点:初始样

(数据科学学习手札39)RNN与LSTM基础内容详解

一.简介 循环神经网络(recurrent neural network,RNN),是一类专门用于处理序列数据(时间序列.文本语句.语音等)的神经网络,尤其是可以处理可变长度的序列:在与传统的时间序列分析进行比较的过程之中,RNN因为其梯度弥散等问题对长序列表现得不是很好,而据此提出的一系列变种则展现出很明显的优势,最具有代表性的就是LSTM(long short-term  memory),而本文就从标准的循环神经网络结构和原理出发,再到LSTM的网络结构和原理,对其有一个基本的认识和阐述:

(数据科学学习手札62)详解seaborn中的kdeplot、rugplot、distplot与jointplot

一.简介 seaborn是Python中基于matplotlib的具有更多可视化功能和更优美绘图风格的绘图模块,当我们想要探索单个或一对数据分布上的特征时,可以使用到seaborn中内置的若干函数对数据的分布进行多种多样的可视化,本文以jupyter notebook为编辑工具,针对seaborn中的kdeplot.rugplot.distplot和jointplot,对其参数设置和具体用法进行详细介绍. 二.kdeplot seaborn中的kdeplot可用于对单变量和双变量进行核密度估计并