jupyter与Pycharm远程开发 | 沐雨浥尘

jupyter与Pycharm远程开发

本地代码开发,远程服务器跑程序,想想是不是美滋滋呢~
情景是这样的:你并没有服务器的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怎么安装到用户目录

好像调用地还是系统的pip,权限又不够了。好吧,装一个自己的pip

1
2
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

好像这次调用了系统的Python,于是乎…
算球,先给本user装一套python,嗯,又是一番折腾,结论就是:强烈推荐直接安装Anaconda

1
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
2
3
4
5
c.NotebookApp.ip = '*'
c.NotebookApp.notebook_dir = u'/the/path/of/jupyternotebook' # 配置notebook目录
c.NotebookApp.open_browser = False # 默认不打开浏览器页面
c.NotebookApp.password = u'' # notebook密码,生成方式在配置文件中有
c.NotebookApp.port = 1717 # 配置端口,避免跟别人冲突嘛

万事俱备,jupyter notebook开启notebook
等等,说好的本地开发呢?
请打开本地浏览器,地址栏输入ip + 端口号,如192.168.0.100:1717,输入密码,log in,大功告成!
不想每次都登上服务器开启jupyter?让它保持后台运行吧!

  • nohup jupyter notebook &注意:暂时不用的时候记得shutdown,不然内存、显存会被持续占有。
  • Shutdown

Pycharm

使用PyCharm进行远程开发和调试
上面的博文中已经有了图文并茂的详细说明,这里只做简单摘要总结,方便自己。

需要Pycharm专业版哟,有个学生邮箱,去JetBrains官网认证一下就行了,一年续一次

部署

  • Tools -> Deployment -> Configuration
  • 点击+
  • Type选择SFTP,点击OK
  • 第一个选项卡Connection填写主机、端口、根目录、用户名、密码
  • Connetion
  • 第二个选项卡Mappings填写本地项目地址,远程项目地址,第三行可留空
    Mappings
  • 第三个选项卡Excluded Paths添加忽略路径
  • 点击OK搞定,在Tools -> Deployment中即可上传、下载、同步、浏览服务器文件

远程调试

代码最终是在远程服务器上执行的,所以嘛,服务器上必须要有python解释器,没有的话先装一个吧

旧版Pycharm

  • 选择File -> Settings,选择Project -> Project Interpreter,然后在右边,点击那个小齿轮设置,选择Add Remote
  • 选择Deployment configuration,点击create,填入服务器python解释器路径
    Deployment configuration
  • OK大功告成

Pycharm 2018.1.3

  • 选择File -> Settings,选择Project -> Project Interpreter,然后在右边,点击那个小齿轮设置,选择Add
  • 选择SSH Interpreter -> Existing server configuration,Deployment configuration拉选刚刚创建好的SFTP,Next
  • Add Python Interpreter 1
  • 设置远程Python解释器以及远程项目路径,Finish
  • Add Python Interpreter 2

切换

如果你有多个远程服务器,可以进行随时切换,比如在GPU集群上跑深度学习,然后回到CPU集群上跑XGBOOST

  • File -> Settings,选择Project -> Project Interpreter,切换远程解释器
  • Tools -> Deployment -> Configuration,选择远程解释器所在SFTP,在Mappings选项卡中点击‘Use this server as default’
  • Default Server

别忘了勾选上Tools -> Deployment -> Automatic Upload(always)哟

小问题

  • 如果user没有远程解释器所在文件夹的权限的话,Pycharm界面可能会显示一堆飘红
  • 如果使用GPU跑tensorflow需要配置cuda环境变量
    cuda

Enjoy Yourself!

Buy me a cup of coffee