基于CentOS7安装Jupyter Notebook


概述

由于我的开发环境是CentOS,现在主要是以Python为主,偶尔夹杂C/C++和GoLang语言。在本地开发、测试、提交git和在生产环境再去测试、开发,并且会在生产环境会有临时性的开发任务和调整,都是比较浪费时间的。不建议直接修改生产环境的代码,临时性的修改后一定要测试并稳定运行一段时间。 写这篇博客主要是为了利用线上资源,实现跨平台开发和测试代码示例用的。所以就在服务器安装了IPython,Jupyter和Notebook

安装和配置

在安装IPython,Jupyter和Notebook时,不仅需要安装Python和Pip,而且还需要安装一些开发操作系统的工具集比如(‘Development Tools‘)。废话少说,直接写代码。

基本包安装

yum update -y
yum install python-pip -y
yum install bzip2 -y
yum groupinstall "Development Tools" -y

安装完pip之后,最好把pip源改为国内源,修改如下:

mkdir ~/.pip
cat > ~/.pip/pip.conf << EOF
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
EOF

由于服务器的生产环境的packages较多,版本也不一致,所以需要安装virtualenv和virtualenvwrapper并配置。

pip install virtualenv virtualenvwrapper
nano .bashrc或者.bash_profile
#设置虚拟独立python环境目录
export WORKON_HOME=$HOME/xxxx
#设置创建项目的目录
export PROJECT_HOME=$HOME/xxxx
source /usr/local/bin/virtualenvwrapper.sh
#退出然后运行如下命令
source .bashrc或者.bash_profile

现在只需要通过pip安装IPython,Jupyter和Notebook即可。

pip install ipython jupyter notebook

所有需要的安装现在全部完毕,下面我们来配置使其生效。

配置

我了实现我们自定制设置,我们需要通过如下配置来完成,我们首先要生成一个jupyter的配置文件。

jupyter notebook --generate-config
#生成的config file在/home/user/.jupyter/jupyter_notebook_config.py

然后我们为了比较安全的访问服务器资源,我们需要设置登录密码和设置https来实现安全登录。如果有条件可以通过安全认证中心来发放秘钥和认证。首先打开ipython,生成sha1的密码,如下:

from notebook.auth import passwd
passwd()
#Enter password
#output sha1:49acd1a985cc:beb1fb6859665bfa721e65e78fc511c41basdasa.

然后生成一个自签名认证的key,如下:

openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout jkey.key -out jcert.pem

最后如下配置即可:

emacs /home/user/.jupyter/jupyter_notebook_config.py
c.NotebookApp.password = 'sha1:<your-sha1-hash-value>'
c.NotebookApp.port = 8888
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.certfile = '/home/user/jcert.pem'
c.NotebookApp.keyfile = '/home/user/jkey.key'
#保存退出即可

使用

由于jupyter使用的8888作为默认端口,所以我需要把端口给开放并重启防火墙。通过如下代码设置:

firewall-cmd --zone=public --add-port=8888/tcp --permanent
systemctl restart firewalld.service

到这里所有的安装和基本的设置都已经完成,直接在命令行输入:jupyter notebook.就可以使用了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程心路

一文读懂SpringMVC中的文件上传与下载

这两天研究了一下 SpringMVC 中文件上传与下载,也遇到了一些坑,这里做个总结。

42140
来自专栏FreeBuf

针对提权小神器Sherlock的分析与利用

? 01 Sherlock简介 Sherlock是一个在Windows下用于本地提权的PowerShell脚本。 目前包含了以下漏洞: MS10-015 : ...

26570
来自专栏章鱼的慢慢技术路

Golang语言下使用Protocol Buffer教程

Protobuf是Google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式。所以很适合用做数据存储和作为不同应用,不同语言之间相互通信的数据交换格式...

13520
来自专栏SDNLAB

OpenDaylight Lithium版本简单应用及流表操作指南

OpenDaylight(以下简写为ODL)的Lithium(锂)版本的最新版Lithium-SR2已经与2015年10月8日发布,具体详情可参考ODL官网。L...

52080
来自专栏向治洪

Android 使用android-support-multidex解决Dex超出方法数的限制问题

随着应用不断迭代,业务线的扩展,应用越来越大(比如集成了各种第三方sdk或者公共支持的jar包,项目耦合性高,重复作用的类越来越多),相信很多人都遇到过如下的...

36780
来自专栏积累沉淀

用JDK开发web service

服务器端     编码:         a. 创建一个基于jdk6以上版本的java工程         b. 定义SEI web service En...

22270
来自专栏雨过天晴

转 PHP-redis编译成功

18230
来自专栏一个爱瞎折腾的程序猿

asp.net core使用Swashbuckle.AspNetCore(swagger)生成接口文档

开局一张图,然后开始编,一些基本的asp.net core东西就不再赘述,本文只对Swashbuckle.AspNetCore的几个使用要点进行描述。

18910
来自专栏魏琼东

分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载

     在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于...

12400
来自专栏Spark生态圈

[spark] Standalone模式下Master、WorKer启动流程

而Standalone 作为spark自带cluster manager,需要启动Master和Worker守护进程,本文将从源码角度解析两者的启动流程。Mas...

30220

扫码关注云+社区

领取腾讯云代金券