由于本人最近由于一些事情,总是不能有大块时间打代码,但是有时候一些灵感又需要写一些小品级的代码来记录一下,所以我决定采用【阿里云服务器 + jupyter notebook + iPad】的方案解决我的问题。原因如下:
- 云服务器可以一直运行,让代码慢慢跑,用家里电脑搭建要一直开着
- 云服务器重装系统方便,试错成本低
- jupyter可以在电脑,iPad,甚至手机的浏览器上运作,非常方便
- iPad轻便,加上键盘可以满足小品级的代码
直接开始吧。
基本配置
第一步当然是在阿里云上找到学生机,并且购买,就一种方案,不需要怎么选择。
购买时选择Ubuntu 18.04,如果没有的话购买完成之后先停止机器,然后在下图位置更换系统为Ubuntu 18.04,主要是为了不重装python版本。
拿到机器在实例界面“更多”中设置root密码,在底下那里设置实例名称
最后,创建新用户
在root用户中,分两步创建用户:
- 创建用户,在弹出窗口中输入密码 ,其他信息可以不用填写,按enter就好。
adduser dawn
- 赋予管理员权限
adduser dawn sudo
安装Anaconda
- 下载:
在清华镜像源中寻找新的Anaconda安装包,在此用户的主目录下运行命令(这里只是例子):
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2020.07-Linux-x86_64.sh
2. 安装
下载完成之后运行(输入An然后按Tab自动补全):
bash Anaconda3-2020.07-Linux-x86_64.sh
接下来按照指示走就可以了,如果不明白可以参考这个文章,这里就不赘述了。
3. 检验
最后应该要重启终端生效。不出意外登录进去会看到(base) user@ComputerName
类似的字样,说明成功了,没有的话运行
conda activate base
如果出现(base) user@ComputerName
类似的字样,也说明成功。具体含义可以上网找找conda
的作用。
4. 换源
最后为了以后下载快,用三行命令将anaconda换源(一行一行输):
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
5. conda
安装新包直接
conda install packagename
第三方库去官方文档查看如何安装。
(base环境下)配置Jupyter
- 生成配置文件
~/.jupyter/jupyter_notebook_config.py
jupyter notebook --generate-config
2. 设置密码,记住
jupyter notebook password
密钥保存在~/.jupyter/jupyter_notebook_config.json
,用vim进去并且保存,长下面这样
sha1:a9079......
3. 用vim更改配置文件
vim ~/.jupyter/jupyter_notebook_config.py
在其中加入:
c.NotebookApp.allow_remote_access = True
#允许远程访问
c.NotebookApp.ip='*'
#似乎'*'或者'0.0.0.0'效果一样
c.NotebookApp.password = u'sha1:a9079......'
#这里是刚才的哈希密码(可用右键粘贴)
c.NotebookApp.open_browser = False
#不打开浏览器
c.NotebookApp.port =8888
#随便指定一个端口
保存退出。
4. 配置公网访问
由如下路径找到安全组
【云服务器管理控制台】【云服务器ECS】【网络和安全】【安全组】【配置规则】添加安全组规则,具体如下(如果界面不同,请点击右上角的【回到旧版】):
端口范围看自己之前配置的端口配置,不要照抄。
- (如果jupyter在运行,退出)重新运行
jupyter notebook
。 - 在电脑浏览器打开新窗口,输入:
公网IP:8888
在下面的界面中输入之前设置的密码(自己设置的那个,不是密钥),即可进入jupyter。
可以看到这个界面直接就在手机浏览器中打开了,实现了我们移动设备写代码的目的。
4. 后台一直运行jupyter
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
使用这个命令。需要更新软件包的话可以结束进程:
使用ps -a
寻找jupyter-noteboo
进程,以及PID,然后
kill -9 3750
结束进程