本地代码开发,远程服务器跑程序,想想是不是美滋滋呢~
情景是这样的:你并没有服务器的root权限,你只是Ubuntu服务器上小小的user
update: 2018.09.27
- 更新Pycharm2018.1.3
登陆服务器
openVPN 接入内网
Xshell or MobaXterm登陆服务器
- 方法一:直接用ssh + ip 登陆,如
ssh 192.168.0.100
- 方法二:新建会话,“连接”中配置名称、协议、主机、端口,“用户身份认证”中配置用户名、密码,之后双击会话即可登陆服务器。
jupyter notebook
安装
强烈推荐直接安装Anaconda
登陆系统之后很开心地pip install jupyter
,然后开始各种权限不够,怎么办?
那我想办法直接安装在用户目录行了吧,于是乎…
好像调用地还是系统的pip,权限又不够了。好吧,装一个自己的pip1
2wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
好像这次调用了系统的Python,于是乎…
算球,先给本user装一套python,嗯,又是一番折腾,结论就是:强烈推荐直接安装Anaconda1
2
3
4
5
6# Linux64位 Python-2.7.13
# 其他版本自行上官网
wget https://repo.continuum.io/archive/Anaconda2-4.3.1-Linux-x86_64.sh
chmod +x Anaconda2-4.3.1-Linux-x86_64.sh # 添加执行权限
./Anaconda2-4.3.1-Linux-x86_64.sh # 安装
# 接下来根据提示输入yes即可
因为Anaconda内置了jupyter,任务结束了
输入jupyter notebook
即可打开
配置
首先生成notebook配置文件:jupyter notebook --generate-config
,一般路径是~/.jupyter/jupyter_notebook_config.py
,vim直接打开,配置内容如下:
1 | c.NotebookApp.ip = '*' |
万事俱备,jupyter notebook
开启notebook
等等,说好的本地开发呢?
请打开本地浏览器,地址栏输入ip + 端口号,如192.168.0.100:1717
,输入密码,log in,大功告成!
不想每次都登上服务器开启jupyter?让它保持后台运行吧!
nohup jupyter notebook &
,注意:暂时不用的时候记得shutdown
,不然内存、显存会被持续占有。
Pycharm
使用PyCharm进行远程开发和调试
上面的博文中已经有了图文并茂的详细说明,这里只做简单摘要总结,方便自己。
需要Pycharm专业版哟,有个学生邮箱,去JetBrains官网认证一下就行了,一年续一次
部署
- Tools -> Deployment -> Configuration
- 点击+
- Type选择SFTP,点击OK
- 第一个选项卡Connection填写主机、端口、根目录、用户名、密码
- 第二个选项卡Mappings填写本地项目地址,远程项目地址,第三行可留空
- 第三个选项卡Excluded Paths添加忽略路径
- 点击OK搞定,在Tools -> Deployment中即可上传、下载、同步、浏览服务器文件
远程调试
代码最终是在远程服务器上执行的,所以嘛,服务器上必须要有python解释器,没有的话先装一个吧
旧版Pycharm
- 选择File -> Settings,选择Project -> Project Interpreter,然后在右边,点击那个小齿轮设置,选择Add Remote
- 选择Deployment configuration,点击create,填入服务器python解释器路径
- OK大功告成
Pycharm 2018.1.3
- 选择File -> Settings,选择Project -> Project Interpreter,然后在右边,点击那个小齿轮设置,选择Add
- 选择SSH Interpreter -> Existing server configuration,Deployment configuration拉选刚刚创建好的SFTP,Next
- 设置远程Python解释器以及远程项目路径,Finish
切换
如果你有多个远程服务器,可以进行随时切换,比如在GPU集群上跑深度学习,然后回到CPU集群上跑XGBOOST
- File -> Settings,选择Project -> Project Interpreter,切换远程解释器
- Tools -> Deployment -> Configuration,选择远程解释器所在SFTP,在Mappings选项卡中点击‘Use this server as default’
别忘了勾选上Tools -> Deployment -> Automatic Upload(always)哟
小问题
- 如果user没有远程解释器所在文件夹的权限的话,Pycharm界面可能会显示一堆飘红
- 如果使用GPU跑tensorflow需要配置cuda环境变量
Enjoy Yourself!