网上安装教程鱼龙混杂,多数都有莫名其妙的坑无法走通,因此记录一下配置过程。
Jupyter Notebook仅可同时一人使用,多人使用会同时修改一个文件;多人使用请关注JupyterHub
自建外网访问需要路由支持公网IP+映射端口,否则请使用Holer直接转发
已经过测试的系统有:
CentOS7 64位
Redhat Enterprise Linux6 64位
如果这篇文章能帮您成功完成安装,请您留言告知您的系统环境~
如遇到问题更欢迎留言~
在阿里云购买ECS服务器不多说,设置系统密码,并登陆进系统
第一步:安装SSH(可跳过)
阿里自带的浏览器控制延迟很大,体验极差
我选择使用SSH并用Putty登陆
CentOS中安装并启动SSH
rpm -qa |grep ssh #查看SSH是否安装
yum install openssh-server #安装SSH
service sshd start #启动SSH服务,stop为停止
netstat -antp |grep sshd #查看是否启动22端口,会显示一条在22端口监听的信息
iptables -nL #看网络策略是否禁止了22端口,不显示为成功
chkconfig sshd on #设置SSH服务为开机启动
下载Putty并连接CentOS
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
连接并测试
为了安全起见,修改SSH服务端口
vim /etc/ssh/sshd_config
找到“#Port 22”修改为
Port 22
Port 20000
注意去掉#
即保留22端口,同时增加20000端口
重启服务
service sshd restart
修改安全策略
在阿里云-云服务器 ECS-安全组-配置规则-快速创建规则
自定义端口 TCP 20000
授权 地址段访问 0.0.0.0/0
连接并测试
若成功,则删除安全策略中22端口的配置,删除sshd_config中的22端口
第二步:安装Python3(亦可以安装miniconda)
查看系统信息
查看自带Python版本,得到Python2.7.5
python
查看Python安装路径,得到位于/usr/bin/python目录下
which python
由于centos7原本就安装了Python2,且有很多系统命令使用Python2,因此不删除Python2。
同时为了使用Tensorflow,Jupyter服务基于Python3安装。
安装基础依赖环境
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
下载
浏览器打开 https://www.python.org/ftp/python/ 查看寻找Python版本,由于Tensorflow还不支持Python3.6版本,因此安装Python3.5.4
wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz
创建Python3的目录
mkdir /usr/local/python3
解压下载文件并进入解压后目录
tar -zxvf Python-3.5.4.tgz
cd Python-3.5.4
执行自定义安装
./configure --prefix=/usr/local/python3
make && make install
创建软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
测试命令
python3
pip3
第三步:安装Jupyter
更新pip
pip3 install --upgrade pip
安装Jupyter同时会安装IPython和notebook
pip3 install jupyter
查看python3的安装路径,应该在/usr/local/python3
cd /usr/local #跳转目录
ls #查看文件列表
创建软连接,否则会出现juptyer command not found
ln -sv /usr/local/python3/bin/ipython /usr/bin/
ln -sv /usr/local/python3/bin/jupyter /usr/bin/
创建Jupyter配置文件,生成在/root/.jupyter/jupyter_notebook_config.py
jupyter notebook --generate-config
打开配置文件
cd /root/.jupyter/
vim jupyter_notebook_config.py
进行如下修改
注意去掉前面的#
c.NotebookApp.port = 20006
c.NotebookApp.ip = ‘你的服务器公网IP’ #或填”*”允许ip访问
c.NotebookApp.open_browser = False
修改Jupyter文件默认存储路径
c.NotebookApp.notebook_dir = ‘/opt/’
vim操作教程
输入i进入编辑模式,按esc键退出编辑模式
输入:/xxx 查找xxx
输入:wq 保存退出
(非必须)使用Jupyter打印日志较多时会报 IOPub data rate exceeded 错误,因为日志打印太快可能导致客户端崩溃,但很不方便,因此做一下修改:
iopub_data_rate_limit = 100000000 #去掉注释并且将后面的限制值多加几个0
(非必须)当使用conda作为包管理器时,需要notebook支持在多个不同环境间切换。输入命令安装nb_conda,之后启动notebook即可看到kernels的切换功能。
conda install nb_conda_kernels
设置登录密码
jupyter notebook password
后台启动 notebook
(nohup jupyter notebook --allow-root --ip=0.0.0.0 > deep.log &)
按两次回车即可
#"nohup", 即 “nohup ./myjob &”,忽略hangup信号,防止shell关闭时程序停掉
查看Jupyter日志
cat deep.log
修改安全策略
在阿里云-云服务器 ECS-安全组-配置规则-快速创建规则
自定义端口 TCP 20006
授权 地址段访问 0.0.0.0/0
连接并测试
在浏览器输入 公网ip:端口
太感谢了,其他的教程好多坑,这是见过最完整的教程了。点赞
原先阿里云的centos7.4都是可以正常运行的,可是昨天重置系统之后,jupyter就有异常了,不能执行代码,一直in[*]
deep.log 日志报错:
[I 12:25:16.194 NotebookApp] Kernel started: 96e3d41e-3b63-4a56-844c-a1e5d5e63d5e
Traceback (most recent call last):
File “/usr/local/python3/lib/python3.6/runpy.py”, line 193, in _run_module_as_main
“__main__”, mod_spec)
File “/usr/local/python3/lib/python3.6/runpy.py”, line 85, in _run_code
exec(code, run_globals)
File “/usr/local/python3/lib/python3.6/site-packages/ipykernel_launcher.py”, line 15, in
from ipykernel import kernelapp as app
File “/usr/local/python3/lib/python3.6/site-packages/ipykernel/__init__.py”, line 2, in
from .connect import *
File “/usr/local/python3/lib/python3.6/site-packages/ipykernel/connect.py”, line 13, in
from IPython.core.profiledir import ProfileDir
File “/usr/local/python3/lib/python3.6/site-packages/IPython/__init__.py”, line 55, in
from .terminal.embed import embed
File “/usr/local/python3/lib/python3.6/site-packages/IPython/terminal/embed.py”, line 16, in
from IPython.terminal.interactiveshell import TerminalInteractiveShell
File “/usr/local/python3/lib/python3.6/site-packages/IPython/terminal/interactiveshell.py”, line 20, in
from prompt_toolkit.formatted_text import PygmentsTokens
ModuleNotFoundError: No module named ‘prompt_toolkit.formatted_text’
随后尝试pip3装prompt_toolkit,但是提示已经存在
肯定是prompt-toolkit出了问题,可能是下载不全或版本不对,建议删掉重装或强制升级