最近想在centos7上尝试安装jupyter notebook,但是路上十分艰辛,遇到了各种乱七八遭的问题,这里就来记录一下自己的心路历程。
1. 重装Python和Yum
刚开始的时候使用了默认的Python,也就是2.7.5版本,然后按照网上的教程安装了各种乱七八糟的包,但是在运行jupyter notebook --generate-config
的时候遇到了Error executing Jupyter command 'notebook': [Errno 2] No such file or directory
这个问题,也按照网上大家说的更新pip,更新python,更新ipython,但是始终有提示说需要python3.5及以上的版本。后来考虑到可能是python版本的问题,于是乎自己重装了python3.7.1并且还傻乎乎地卸载了python2.7.5,然后悲剧就来了,yum用不了,给后续的工作带来了相当大的麻烦。后来纠结了很久,最后决定重新安装python2.7.5并使用Anaconda3来解决安装jupyter notebook遇上的python版本问题。
- 强制删除已安装程序及其关联
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
- 删除所有残余文件
##xargs,允许你对输出执行其他某些命令
whereis python |xargs rm -frv
whereis yum|xargs rm -fr
- 验证删除,返回无结果
whereis python
whereis yum
- 重新安装python
进入https://centos.pkgs.org搜索centos7系统对应的python和python-libs,可以执行以下的链接获得相应的rpm包:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-2.7.5-76.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-libs-2.7.5-76.el7.x86_64.rpm
执行以下命令同时安装python和python-libs,不然安装的时候会报错:
#-i 安装包
#-iv 并在安装过程中显示正在安装的文件信息;
#-ivh 并在安装过程中显示正在安装的文件信息及安装进度;
rpm -ivh python-libs-2.7.5-76.el7.x86_64.rpm python-2.7.5-76.el7.x86_64.rpm
- 重新安装yum
为了重新安装yum,需要安装很多依赖的包,目前就只能一个接一个地用wget下并用rpm -ivh的方式逐个或批量安装。以下是需要安装的包的rpm链接地址:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-pycurl-7.19.0-19.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-9.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/rpm-python-4.11.3-35.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-161.el7.centos.noarch.rpm
下载完成之后可以用以下命令批量安装上述下载的包:
rpm -ivh python-*.rpm
rpm -ivh yum-*.rpm
- 测试安装结果
最后就可以使用如下代码查看安装是否成功:
python -V
yum --version
如果正确显示了python和yum的版本那么就说明python和yum安装成功了。
2. 安装Anaconda3和Jupyter Notebook
- 下载安装Anaconda3
可以在以下的地址下载安装Anaconda3的sh文件:
wget https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh
下载完成之后就可以使用以下指令安装Anaconda3:
bash Anaconda3-2018.12-Linux-x86_64.sh
安装过程中按照提示,需要按enter确认的按enter,需要输入yes确认的输入yes。
- 配置Anaconda3
默认情况下,Anaconda3是安装到/root/anaconda3
路径下,所以使用vi /etc/profile
编辑profile文件,并在最后加入:
export ANACONDA_HOME="/root/anaconda3"
export PATH=$PATH:$ANACONDA_HOME/bin
然后使用如下指令来使更改的配置生效。
source /etc/profile
或者将常用的指令建立软连接到对应的bin目录下,这里以conda指令为例:
ln -s /root/anaconda3/bin/conda /usr/local/bin/conda
ln -s /root/anaconda3/bin/conda /bin/conda
ln -s /root/anaconda3/bin/conda /usr/bin/conda
注意,这里需要填写绝对路径,不然系统会找不到具体的目标指令就会报错。Anaconda3安装成功之后也会自动安装上python3,只不过需要确认python的版本,如果python还是2.7.5的版本的话,这时应该可以使用python3指令来使用python3的版本。
- 安装jupyter notebook
使用如下指令来下载并安装jupyter notebook的rpm包:
wget https://forensics.cert.org/centos/cert/7/x86_64//python-ipython-notebook-2.2.0-1.el7.noarch.rpm
rpm -ivh python-ipython-notebook-2.2.0-1.el7.noarch.rpm
- 配置jupyter notebook
- 4.1 在个人账户下建立配置文件
运行如下代码来生成配置文件:
jupyter notebook --generate-config
- 4.2 设置密码
在python环境下设置密码,进入python3的环境:
python3
然后运行如下代码
from notebook.auth import passwd
passwd()
然后输入jupyter notebook登录用的密码,并再次输入确认密码,并得到类似如下的输出:
Enter password: 123456 # 设置密码为123456
Verify password: 123456
'sha1:d66351142f0a:9eea3d7f99e434a6837f5e73af18d03cf0353392'#(复制此行密码)
- 4.3 修改配置文件
使用如下指令打开配置文件,修改其中的一些部分:
vi /root/.jupyter/jupyternotebook_config.py
打开jupyternotebook_config.py之后找到如下几行配置并按照下面的操作进行修改:
c.NotebookApp.allow_root = True
# 允许远程连接
allow_remote_access = True
# 允许登录notebook的ip地址
c.NotebookApp.ip = '*'
# 这里的密码是刚刚生成的密码
c.NotebookApp.password = 'sha1:b39d2445079f:9b9ab99f65150e113265cb99a841a6403aa52647'
# 连接notebook的端口
c.NotebookApp.port= 8888
# notebook的默认目录 ,如果找不到notebookdir试试notebook_dir。
# 编辑完配置文件之后记得在/root目录下创建ipython文件夹,如果ipython文件夹已经存在,可以忽略。
# 这里的ipython名可以随意设定。
c.NotebookApp.notebookdir = "/root/ipython"
# 如果系统没有浏览器的话需要指定不用浏览器打开
c.NotebookApp.open_browser = False
# 能够访问notebook的地址
c.NotebookApp.local_hostnames = ['localhost', '{服务器地址}']
- 4.4 后台开启notebook
使用如下指令后台开启jupyter notebook:
nohup jupyter notebook &
nohup
指的是不挂起,而&
是后台运行,默认情况会在当前目录生成nohup.out
,记录原本在控制台的输出情况。
如果需要关闭后台启动的进程,找到进程PID(关闭在前面后台执行的进程的步骤,首先找到其进程PID):
ps -ef | grep jupyter
ps -ef
查看本机所有的进程;grep jupyter
代表过滤找到条件jupyter
的项目。
kill掉进程:关闭进程:
kill -9 具体的PID
- 4.5 浏览器访问测试
访问{服务器地址}:8888
试试能不能跳出jupyter notebook的登录界面,如果有就ok。
参考文献
Linux Centos7安装anaconda3和jupyter
后台执行的启动与关闭
rpm重装python和yum
rpm安装和卸载软件
CentOS Repositories
yum groupinstall ‘Development Tools’ 出现错误
Use jupyter command, It show error: No such file or directory