jupyter notebook安装/代码补全/支持golang 踩坑记
安装(不要用root)
安装anaconda3,然后ln -s bin目录下的jupyter命令到/usr/bin目录下
生成密码备用
敲ipython进入交互终端
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:67c9e60bb8b6:xxxxxxxxxxxxxxxxxxxxxxxxx'
然后复制整个 sha1:67c9e60bb8b6:xxxxxxxxxxxxxxxxxxxxxxxxx
生成jupyter配置文件:
看一眼 ~/.jupyter/jupyter_notebook_config.py是否存在,默认情况下并不存在需要自行创建。使用jupyter notebook --generate-config命令生成配置文件:
设置配置文件,设置密码:
c.NotebookApp.ip='0.0.0.0' #允许远程访问
c.NotebookApp.password = u'sha:ce...刚才复制的那个密文'
c.NotebookApp.open_browser = False #不打开浏览器
c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口228行
c.NotebookApp.allow_origin = '*' # 允许跨域访问
参考自
https://www.cnblogs.com/wu-chao/p/8419889.html
配置代码自动提示
安装nbextensions
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
如果上面失败,可以试试:jupyter contrib nbextension install --user --skip-running-check
win和mac参考下面:
windows
- 1:确定是已经安装好anaconda
- 2:要在anaconda prompt模式下运行(jupyter notebook打开)
- 3:pip install jupyter_contrib_nbextensions(安装成功后,关掉jupyter notebook及相关网页,并重新打开,观察是否安装成功)
- 4:如果发现依旧失败,则可进行此步骤,注意(jupyter notebook关闭)
进行配置:jupyter contrib nbextension install --user --skip-running-check - 5:安装完成后,重新启动jupyter notebook,“Nbextensions”出现在导航栏中,勾选目录。
macos
- 1:确定是已经安装好anaconda
- 2:要在Mac终端下运行,如何找到终端(启动台-其他-终端)
- 3:先安装nbextensions依次输入运行下面代码:
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
- 4:安装完成后,关终端,启动anaconda中的jupyter notebook,在主页中,可以看见Nbextensions标签页,选中Hinterland 就能使用代码补全了。
里面几个常用的插件
- Table of Contents:更容易导航
- Autopep8:轻轻一击就能获得简洁代码,相当于代码的格式化
- variable inspector:跟踪你的工作空间
- ExecuteTime:显示单元格的运行时间和耗时,后面在讲到magic里面有和他相似的内容功能
继续安装nbextensions_configurator
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
如果提示缺少依赖,就使用pip安装对应依赖即可,conda环境不会报错。
重启jupyter,在弹出的主页面里,能看编辑-Nbextensions标签页,在这个页面里,勾选Hinterland即启用了代码自动补全
参考自
Notebook使用
目录
文件新建及导入导出
菜单
快捷键 [esc+h]
jupyter常用的快捷键:
选中单元格情况下:M----->markdown,Y------>codeshift + Tab :查看方法中的参数
双击D,删除当前的单元格(删除之后,Crtl + Z还原无效)
插入一行:b(bellow),a(above)
执行单元:Ctrl + Enter(运行本单元,选中本单元)
shift + Enter(运行本单元,选中下一个单元)
Alt + Enter(运行本单元,向下插入一个单元)
更多魔法指令:%lsmagic查看
关于Magic命令
Notebook中的Magic开关
在jupyter的Code模式下,除了一般的python代码编辑外,jupyter还支持一些其他的编程语言,如R,Julia,bash等,不过需要使用magic单元。
- 为实现一些快捷操作,提升效率。Notebook中提供了Magic开关,能极大得优化我们使用Notebook的体验。
- Magic 开关分为两大类:%line magic(%表示magic只在本行有效) & %%cell magic(%%表示magic在整个cell单元有效)
例如:使用magic产生Linux下的shell环境,
%%bash
pwd && ls
## 表示一个可以修改内核选项ast_node_interactivity,使得jupyter对独占一行的所有变量都自动显示
%config ZMQInteractiveShell.ast_node_interactivity='all'
[In]
a = 2
n = 4
a
n
[Out]
2
4
查看代码运行时间
%time 一行
%%time 多行
%%timeit多行的平均时间
其他问题
- 信任服务器笔记本需要点击
件-信任代码(否则会404,无法执行),更多安全策略详见官方文档:
https://jupyter-notebook.readthedocs.io/en/latest/security.html#our-security-model
插件安装:
https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/install.html如果是nginx转发,可能会websocket链接失败,因为请求的代理头丢失了.需要修改proxy配置,传递请求头:
location /api {
proxy_pass http://xx.xx.xx.xx:xxxx;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
- nginx还需要配置一个请求体大小,否则很容易超限:
在http{}中配置一个狠的:client_max_body_size 50m;
golang支持
jupyter notebook支持多语言,golang语言的jupyter需要一个kernel支持: https://github.com/gopherdata/gophernotes
但是这个kernel又依赖zeromq,所以:
梦想这样666:
https://www.jianshu.com/p/c82a2a21afcc
实际有坑,这么干:
https://segmentfault.com/a/1190000015674501
安装zeromq:
https://github.com/zeromq/zeromq4-x/branches
流程:
- 去下载zeromq
- 然后解压,
- configure 指定--prefix=/usr/local/zeromq4.0.8
- make make install
- 配置环境变量,让系统找到那个包
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/zeromq4.0.8/lib/pkgconfig - 配置系统参数,让系统可以找到so,看上面第二个博客就ok
jupyter notebook安装/代码补全/支持golang 踩坑记的更多相关文章
- 关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument 'column' 的解决方案
关于Jupyter Notebook无法自动补全(Autocompletion),报错TypeError: __init__() got an unexpected keyword argument ...
- [转载]Jupyter Notebook中自动补全代码
原文地址:https://yq.aliyun.com/articles/667928 在公众号之前的文章中,已经介绍了在Jupyter Notebook中设置主题以及输出代码文件到pdf文件中,本文来 ...
- 如何为 Jupyter Notebook 安装代码提示功能
按照上一篇博客安装完 Python 和 Jupyter Notebook 后,我们已经可以使用 Notebook 愉快的编写 Python 代码了,但是发现它不像其他编辑器那样会弹出代码提示,这稍微有 ...
- Vim使用Vundle安装代码补全插件(YouCompleteMe)
安装 Vundle 它的使用方法很简单,安装一个插件只需要在 ~/.vimrc 按照规则中添加 Plugin 的名称,某些需要添加路径,之后在 Vim 中使用:PluginInstall既可以自动化安 ...
- jupyter notebook 安装代码提示功能
我的是在anaconda中的root环境下运行以下命令,在其他环境下发现没有效果 1 pip install jupyter_contrib_nbextensions jupyter contrib ...
- jupyter lab最强代码补全插件
1 简介 提起kite相信不少朋友都有印象,它是一个功能非常强大的代码补全工具,目前可用于Python与javascript,为许多知名的编辑器譬如Vs Code.Pycharm提供对应的插件. 图1 ...
- Jupyter Notebook主题字体设置及自动代码补全
Jupyter Notebook用久了就离不开了,然而自带的主题真的不忍直视.为了视力着想,为了自己看起来舒服,于是折腾了一番..在github上发现了一个jupyter-themes工具,可以通过p ...
- 在Jupyter Notebook添加代码自动补全功能
在使用Jupyter notebook时发现没有代码补全功能,于是在网上查找了一些资料,最后总结了以下内容. 1 安装显示目录功能: pip install jupyter_contrib_nbext ...
- Sublime text代码补全插件(支持Javascript、JQuery、Bootstrap框架)
Sublime text代码补全插件(支持Javascript.JQuery.Bootstrap框架) 插件名称:javascript-API-Completions 支持Javascript.J ...
随机推荐
- Swift Enum 枚举
前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...
- 分析轮子(六)- LinkedList.java
注:玩的是JDK1.7版本 一:先上类的继承结构图 二:再看一下他的底层实现数据结构 三:然后从源码中找点好玩的东西 1)双向链表的结构构成元素,头指针.尾指针.节点信息(前向指针.后向指针.节点信息 ...
- Spring Boot系列——7步集成RabbitMQ
RabbitMQ是一种我们经常使用的消息中间件,通过RabbitMQ可以帮助我们实现异步.削峰的目的. 今天这篇,我们来看看Spring Boot是如何集成RabbitMQ,发送消息和消费消息的.同时 ...
- Tomcat线程数与处理速度的关系
问题:Tomcat线程数是不是越大越好呢? 答案肯定是否定的. Tomcat的处理速度跟线程数不是完全成正比的,设置不恰当会出现相反的效果.服务的负载计算包括了CPU的使用率和资源等待. 第一种情况, ...
- Centos使用LVS+keepalive 搭建集群原理详解
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...
- React Native 从入门到原理一
React Native 从入门到原理一 React Native 是最近非常火的一个话题,介绍如何利用 React Native 进行开发的文章和书籍多如牛毛,但面向入门水平并介绍它工作原理的文章却 ...
- jQuery雷达扫描切换幻灯片代码
基于jQuery雷达扫描切换幻灯片代码.这是一款切换效果类似雷达扫描,支持鼠标滚轮滚动切换.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=" ...
- 自定义GridView实现分割线解析
前两天在些项目的时候碰到常用的GridView要实现一些分割线,之前就是用本方法利用listView和Item的背景颜色的不同线显示分割线.这是最low的一种做法.于是我就简单的写了一个自定义的 Gr ...
- HAWQ集成Yarn HA作为资源管理服务
一.第一步当然是配置YARN HA,这在使用ambari管理时很简单,这里不在赘述. 二.建立HAWQ的专用资源队列queue 不要手工编辑scheduler设置,最方便的当然是使用queue man ...
- Tensorflow r1.8安装C++接口(兼容OpenCV3)
与之前一样,直接走medium的传送门:https://medium.com/@fanzongshaoxing/use-tensorflow-c-api-with-opencv3-bacb83ca56 ...