在远程服务器上做开发时,如本人在远程gpu服务器进行深度学习,如果在本地开发环境下开发可能会存在问题,需要保证本地开发环境与远程服务器一致。本地编辑好的程序也要拷贝到服务器。可以通过以下的几种方式直接在远程服务器环境下做开发。
1、pycham远程配置
主要需要配置以下两个
本地文件与远程文件关联,也就是实现与远程服务器互联,在本地开发完成的文件可以一键传到远程服务器,远程服务器的文件也可一键拉过来。或者设置自动实时同步也是可以的
本地pycharm使用远程服务器的Python Interpreter
具体配置过程参照此博客,网上很多教程这里不多说了,注意只有专业版才有远程的功能。
2、远程Jupyter Notebook
Jupyter Notebook默认只能在本地调用,远程调用需要修改其配置文件,
1)为避免不必要的报错,在配置前最好使用以下命令把远程服务器的Jupyter Notebook升到最新版。
pip install -U jupyter
pip install -U jupyter
2)生成配置文件,
jupyter notebook --generate-config
jupyter notebook --generate-config
root用户下需要加参数--allow-root 执行上面的命令
jupyter notebook --generate-config --allow-root
jupyter notebook --generate-config --allow-root
3)设置远程登陆Jupyter Notebook的密码
执行以下命令输入密码即可
jupyter notebook password
jupyter notebook password
补充:
后续使用中 发现使用命令行生成密码总是报错,也可以不使用命令行,直接修改配置文件也可以设置密码。
将下面行改为你的密码即可。
#c.NotebookApp.token = '<generated>'
#c.NotebookApp.token = '<generated>'
如密码设置为QQQ,注意记得去掉注释#号。
c.NotebookApp.token = 'QQQ'
c.NotebookApp.token = 'QQQ'
4)修改配置文件
编辑Jupyter Notebook的配置文件
vim ~/.jupyter/jupyter_notebook_config.py
取消掉以下行的注释,并修改成以下内容
c.NotebookApp.ip = '*'
c.NotebookApp.port = '8888'
c.NotebookApp.open_brower = False
至此,远程Jupyter Notebook配置完成,其他电脑浏览器打开输入密码即可使用
3、在pycharm中使用远程的Jupyter Notebook
Jupyter Notebook优点很多,但之前一直不用的原因在于jupyter没有代码提示,错误提示。对于新人不友好,并且颜值不高。
可以在Pycharm中使用远程的Jupyter Notebook。享受Jupyter Notebook优点的同时,还能享受Pycharm自动补全等等的功能。
在说配置过程之前,先说配置过程踩过的坑。供大家参考
在pycharm中新建Jupyter Notebook文件,点击run cell时,会提示让你配置server。也就是让你填写http://x.x.x.x:8888/?token=sacvxvxcuqywebxchv|wd这个链接。但是我上面配置远程Jupyter Notebook时设置了密码,在服务器运行Jupyter Notebook时不会给这个token的链接。如下图的运行后的日志:
而是默认让你使用密码登录的方式。
并且pycharm只能使用token的方式登录。为了解决这个问题尝试了多个版本的pycharm。只在最新版的pycharm 2019.02版本中找到了密码登录Jupyter Notebook的方法。(ps:其他版本或许也支持密码登陆,只是我没发现而已,实在找不到就换到最新版本把。)
最新版的pycharm 2019对Jupyter Notebook进行了升级。与正常的jupyter Notebook版面有点区别,代码在左边,输出在右边。如下图,颜值还是很高的:
pycharm 2019.02版本的Jupyter Notebook配置过程:
1)在pycharm中新建Jupyter Notebook文件,点击下图位置设置远程jupyter Notebook的IP地址+端口。
2)点进去后输入远程jupyter Notebook的IP地址+端口。如本例的http://10.200.2.7:8888。然后点OK保存设置。
3)然后点击下方run cell
就会提示让你输入密码或者token。输入之前配置远程Jupyter Notebook设置的密码即可。之前版本的只有输入token的选项
输入密码后运行很可能会报以下的错误:Error with connection to Jupyter: server responded with 501 on POST http://10.200.2.7:8888/api/sessions HTTP/1.1. 201 was expected.
去官网的issues中找到这是kernel版本不对的错误。解决方法是:把pycharm 中的python Interpreter设置成远程启动Jupyter Notebook的python解释器即可。
例如:假设在服务器上使用conda管理python环境。我在conda的名为tf1.12的环境下启动了Jupyter Notebook,如下图:
那么pycharm的python Interpreter也设置成conda环境名为tf1.12的python解释器,如下:
设置完成后就可以正常使用了。尽情享受Jupyter Notebook和Pycharm的结合吧。enjoy it!
————————————————
版权声明:本文为CSDN博主「Fang Suk」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MrR1ght/article/details/98227629