在jupyter notebook上使用python虚拟环境

jupyter notebook是交互式的Python运行环境,可以把它看做是一张草稿纸,你可以通过它来进行你的思考探索过程,交互式的进行,每一步都能看到结果,也很方便查看之前的结果。它是使用Python或者R做科学计算和数据分析的利器。前几天有小伙伴问我怎么在jupyter上添加已经创建的Python虚拟环境,为此我也去查了一些资料,很多资料都只是粗略的介绍怎么安装和使用它。最终还是通过google和自己摸索弄出来了。

我使用的是anaconda,使用它可以让我们大大减少与Python 一些第三方库安装配置环境进行斗争,比如在windows平台安装lxml,如果直接使用pip进行安装,估计不折腾半天到一天,都不能顺利安装上。使用anaconda,你可以把这些时间拿来做更有意义的事情。使用anaconda的话,安装第三方库优先使用conda install xxx,如果提示找不到包,然后再使用pip install xxx,如果pip安装失败,则查看它的报错信息,能用conda install安装的依赖先用这种方式安装,最后用pip install安装。实在还不行,那么在这里下载.whl文件进行安装。如果还是不行,那么就只有google或者阅读官方文档了,自求多福!

上面说了这么多,其实一句话,就是推荐大家使用anaconda。anaconda自带了jupyter notebook。如果是不是使用的anaconda,那么可以通过

pip install jupyter

安装jupyter notebook.安装好过后,在命令终端输入jupyter notebook,那么在浏览器中访问http://localhost:8888/,就可以看到如下界面

Paste_Image.png

可以看到我这里的运行环境是Python2和Python3,那么怎么添加其它环境呢?先使用conda info -e查看我已有的虚拟环境

Paste_Image.png

现在我想在jupyter中使用名为mjpy27这个内核,怎么办呢?其实jupyter的ipykernel是使用一个叫kernel.json的文件管理的,mac os 或者linux平台可以通过

find . -name "kernel.json"

找到该文件的位置。如下图所示

Paste_Image.png

从图中我们可以看到差不多有三种类型的位置,要修改哪个位置的json文件才管用呢?眼尖的同学可以看到./Library/Jupyter/kernels/python*/kernel.json这类位置有三个json文件,经过实验发现需要在在./Library/Jupyter/kernels/目录下手动创建一个文件夹,然后创建一个名为kernel.json的文件,让该文件和已有的虚拟环境相关联,即可使用该虚拟环境。该json文件的内容大概如此:

{
 "display_name": "mjpy27", 
 "language": "python", 
 "argv": [
  "/Users/resolvewang/anaconda3/envs/mjpy27/bin/python", 
  "-m", 
  "ipykernel_launcher", 
  "-f", 
  "{connection_file}"
 ]
}

再看看我们jupyter中的解释器内核,可以看到mjpy27被添加进去了。

Paste_Image.png

Linux中设置方法大致和mac上相同。windows中的话,kernel.json文件的位置位于

C:\Users\Administrator\AppData\Roaming\jupyter\kernels\python*\kernel.json

目录下,需要多个虚拟环境,就手动创建多个python文件夹和kernel.json*文件。

上面是从最通用的方法,其实有更加简单的方法。如果你不想手动修改kernel.json文件的话,可以直接为你想要的环境安装ipykernel包。即:

conda install -n py27 ipykernel

然后激活这个环境,输入

python -m ipykernel install --user

这样就可以在jupyter中使用py27这个环境了。

如果所需版本并不是已有的环境,可以直接在创建环境时便为其预装ipykernel。

conda create -n py27 python=2.7 ipykernel

不过这两种方式,只能为Jupyter安装一个Python2和一个Python3的环境。从上面过程可以看到,我们手动生成kernel.json的时候,可能会创建多个python*(或者其他名字)的文件夹,但是使用上述命令(conda/pip install ipykernel)快捷创建的时候它不会生成除了python2python3以外的文件夹,所以最多只能创建两个虚拟环境。


除此之外,jupyter notebook还可以远程运行,为了安全,你可以在远程访问的时候为jupyter设置一个密码,这里就不多讲了,因为网上很多资料都写了,有兴趣的可以google一下。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 1. 介绍 任何语言的包,依赖和环境管理:Python,R,Ruby,Lua,Scala,Java,Javascr...
    Himryang阅读 74,278评论 6 67
  • 本文为《爬着学Python》系列第十三篇文章。 Python能在这几年火起来,靠的不是网上一大片的爬虫和服务器后端...
    SyPy阅读 4,794评论 0 5
  • 1. 介绍 首先让我们来看看TensorFlow! 但是在我们开始之前,我们先来看看Python API中的Ten...
    JasonJe阅读 11,721评论 1 32
  • 一天两天 日复一日 年复一年 没意思
    离离青青草阅读 198评论 4 0
  • 其实家家有本难念的经,不回家过年的人不是不想回家,而是回家之后不好说。在外面混的好还好,混的不好都不好意思说。家里...
    强子不小强阅读 697评论 2 1