动机
使用windows 自带的远程桌面连接 连接远程服务器,使用起来太卡了,严重降低了我的写代码体验。于是尝试用pycharm 远程连接服务器,这样就可以使用服务器上的环境和设备(GPU)了
牺牲
- 要在本地为项目预留空间,从而方便服务器和本地之间进行文件的上传与下载,这也导致项目内最好不要放太大的文件(比如数据集),否则上传和下载很耗时间
- 要用远程的环境来运行
jupyter 的话,无法可视化变量,如下图:
下载项目和配置环境
最基本的远程连接服务器的需求,参考pycharm远程连接服务器完整教程,我就是完全跟着这篇文章的指示来的,一次就成功~
简单总结一下配置逻辑:
- 使用
SFTP 建立与远程服务器的连接 - 建立项目映射,先把服务器上要处理的项目下载下来,然后在本地进行coding,coding结束再上传到服务器端
- 配置环境,使本地也可以用远程的设备和环境来运行代码(如果只是为了在本地写代码,然后再去服务器上运行,可以省略这一步)
说一下我在使用过程中出现的问题。配置成功后续使用中,出现过pycharm cannot run the remote Python interpreter 的问题,然后我发现,之前我是以用户身份与远程连接的,而pycharm远程连接服务器完整教程貌似是默认使用root身份进行连接的,因为其中貌似要我们勾选下图中Execute... : 于是我又重新配置了。因为多配置了几遍,然后发现下图位置可能出现了好几个映射:
但是直接修改又点不动,于是发现可以直接在点击show all ,然后一一把配置的其他远程环境删除就可以了:
配置jupyter
开始我也是想在pycharm中使用服务器的环境来运行jupyter的(代码能力较弱,得边写边看结果),结果配置成功后,发现无法可视化变量…但还是记录下配置jupyter的过程
官网貌似是给出了Run a remote Jupyter server kernel 的方式,但是看到有人说失败了,于是我又找了一个中文教程,远程开发利器:Pycharm中使用远程Jupyter Notebook:,但按照教程没有完全成功,最后修改了一些地方,总结一下:
服务器端:
- 生成配置文件和密码(与教程中一样)
- 修改配置文件,直接打开
/home/$user$/.jupyter/jupyter_notebook_config.py ($user$ 替换为自己在服务器上的用户名),找到下面三行:
修改为:
c.NotebookApp.ip = '211.87.232.150'
c.NotebookApp.port = '8888'
c.NotebookApp.open_brower = False
其中第一行,我设置为了服务器的地址,是可以work的
本地端:
- 在你要运行的jupyter文件中点击:
然后输入:
http://211.87.232.150/?token=
然后运行jupyter文件中的某个cell,会弹出让你输入密码的对话框,输入刚才在服务器端生成的密码即可
|