目录
- 背景
- 安装 miniconda
- 安装 jupyter notebook
- 给 jupyter notebook 创建密码
- 守护进程启动 jupyter notebook
- centos 防火墙配置(如果需要)
- 后记
背景
jupyter notebook 是一个很好地 python 编程和学习工具,想把它放到服务器上,方便随时敲点代码。
miniconda 是 anaconda 的简化版,仅保留了 anaconda 最基础的功能,但同样能提供强大的功能,比如搞定 python 环境问题,安装 jupyter notebook。我的服务器配置比较低,装 anaconda 太重了,选择安装 miniconda。
安装 miniconda
-
官网 下载 miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
-
添加文件可执行权限
chmod +x Miniconda3-latest-Linux-x86_64.sh
-
安装 miniconda
./Miniconda3-latest-Linux-x86_64.sh
安装过成功会有一些选项,选择 yes 和其它默认选项就好了
-
配置环境变量
编辑配置文件
vim /etc/profile
添加配置
CONDA_HOME=/root/miniconda3 export PATH=$PATH:$CONDA_HOME/bin
刷新配置文件
source /etc/profile
注:发现 centos 8 中在用户根目录下多了一个
.bash_profile
文件,看起来跟 Mac 的系统有点相似,上述配置也可以配置到这个文件中 -
测试
conda -V
应该可以输出版本信息,表示安装成功
安装 jupyter notebook
有了 conda 安装 jupyter notebook 就很简单了
-
执行安装命令
conda install jupyter
-
创建配置文件
jupyter notebook --generate-config
这样,在用户根目录下会产生隐藏文件夹
.jupyter
,该目录中有配置文件jupyter_notebook_config.py
-
创建密码
# 进入 Python # python3 >> from notebook.auth import passwd >> passwd() Enter password: # 输入密码 Verify password: # 确认密码 'sha1:·········' # 输出的这个东西就是秘钥,【复制出来】
-
修改配置文件
$ vim ~/.jupyter/jupyter_notebook_config.py # 这些配置信息原本都存在,只不过被注释掉了,为了方便,我们直接在文件最后添加这些配置即可 c.NotebookApp.allow_root = True # 开放root用户使用 c.NotebookApp.ip='*' # 所有ip均可访问 c.NotebookApp.password = u'sha:ce...' # 刚才复制的那个秘钥 c.NotebookApp.open_browser = False # 禁止启动jupyter时打开浏览器 c.NotebookApp.port =8888 #可自行指定一个端口, 访问时使用该端口
-
守护进程启动 jupyter
使用nohup命令创建jupyter的守护进程
$ nohup jupyter notebook >> /root/jupyter.log 2>&1 &
- nohup <进程名> & 为启动守护进程
-
>> /root/jupyter.log
表示将启动日志追加到 jupyter.log 文件中 - 2>&1 表示将标准出错重定向到标准输出,即将标准出错也输出到 jupyter.log 文件中
最后,从浏览器中访问IP:8888然后输入密码就可以使用了
注:如果启动出错了,可以查看下 jupyter.log 日志,也可以不用守护进程的方式启动以排查错误
-
防火墙(如果需要)
如果启动了防火墙,需要开放相应的端口
firewall-cmd --add-port=8888/tcp --permanent # 永久添加端口开放 firewall-cmd --reload # 重新加载防火墙配置
如果你也是在服务器安装的,别忘了检查下云服务器提供商的安全组策略,是否也要开放端口。
后记
其实这些东西上学那会儿都搞过,当时对学习新东西还是非常有激情,自从参加工作后搬砖搬久了反而激情少了。虽说工作中一直用 Java,但我一直觉得 Python 是比 Java 更有趣的语言。立个 Flag,环境搭好了,后面时常写点有趣的东西。