目录

  • 前言
  • 本地使用Pycharm调试
  • 本地使用Jupyter Notebook调试
  • 1 服务器终端或者命令行
  • 2 本地
  • 参考感谢 🤞
  • 谢谢你的浏览!😀


前言

本地没有GPU的我只能用服务器跑Python程序,但是无法直接调试导致我每次只好先从本地复制到服务器,再手动在终端输入“python run.py”,然后开始祈祷……

那么有没有办法可以直接在服务器端调试呢?还真有,下面我就给大家总结一下如何在本地使用Pycharm和Jupyter Notebook调试服务器的Python程序

本地使用Pycharm调试

对于从Github上克隆的项目和需要阅读源码的项目来讲,使用Pycharm可以极大的方便我们进行学习和编程。

如果使用Pycharm,只需要在本地进行设置。

下面进入教程部分:

  1. 首先打开Pycharm 2020.3版本,选择Tools -> Deployment -> Configuration,跳转到Deployment窗口。
  2. Python怎么在服务器上跑 python如何放在服务器运行_jupyter

  3. 点击Deployment界面左上角“加号”,添加 SFTP,自定义一个Name(最好是服务器的地址或者地点),点击OK。
  4. Python怎么在服务器上跑 python如何放在服务器运行_python_02

  5. 下面点击SSH configuration后的三个点,进入SSH Configuration界面,然后点击加号,添加服务器的Host、Port、Username、Password,然后Test Connection,如果你看到Connect Successfully,表示服务器链接成功。如果不成功,请检查服务器是否开启SSH服务。链接成功后,点击OK。
  6. 回到Deployment界面,设置Root path(一般服务器是多人使用,每个人有一个个人目录);也可以点击后面的“Autodetect”。
  7. Python怎么在服务器上跑 python如何放在服务器运行_jupyter_03

  8. 然后点击Mapping选项卡,Local path表示本地的项目目录,Deployment path表示服务器的Root path下的具体项目文件夹。这两个目录下的文件会进行同步,而且本地调试也是调试该目录下的文件。然后点击OK。(Excluded Paths选项卡,可以设置不想同步的目录。)
  9. Python怎么在服务器上跑 python如何放在服务器运行_jupyter_04

  10. 设置自动同步本地和服务器的文件夹:Tools -> Deployment -> Automatic Upload。
  11. 设置好了服务器连接和文件夹的同步,最关键的是我们要用的服务器上的Python解释器,在Pycharm中进入File -> Setting -> Project -> Project Interpreter,然后点击小齿轮 -> Add。
  12. Python怎么在服务器上跑 python如何放在服务器运行_pycharm_05


  13. Python怎么在服务器上跑 python如何放在服务器运行_人工智能_06

  14. 然后选择SSH Interpreter,选择Existing server configuration,选择刚才创建的的服务器。然后选择Previous,选择服务器上的Python解释器,如果你的服务器下有Conda环境,请到Conda的安装目录下envs目录下找到自己所需环境的Python解释器,然后点击OK。查看你的Pycharm右下角,如果显示的Python解释器为服务器上的解释器,那么就可以在Pycharm上使用服务器的Python解释器调试了!
  15. Python怎么在服务器上跑 python如何放在服务器运行_Python怎么在服务器上跑_07

本地使用Jupyter Notebook调试

对于一些数据分析类的项目,需要实时查看输出结果,使用Jupyter Notebook是最好不过的了。

如果使用Jupyter Notebook,那么本地和服务器端都需要进行修改。

下面进入教程部分:

1 服务器终端或者命令行

强烈建议使用Conda的虚拟环境,如果大家需要教程可以留言给我。

  1. 先安装 Jupyter notebook
$ conda intall jupyter
  1. 然后设置Jupyter服务器端的密码
$ jupyter notebook password

输入密码,这里要记住该密码,因为本地访问服务器的Jupyter时需要用这个密码。

  1. 然后设置SSH,这个设置目的是保证通信安全。
$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout my_key.key -out mycert.pem

然后会让你输入country name等等内容是用来生成密钥的,不填也可。

请注意,my_key.key和mycert.pem都会保存在当前目录下。

  1. .jupyter文件夹下找到jupyter_notebook_config.py,填入my_key.keymycert.pem的路径,以及jupyter_notebook_config.json文件中的密码hash串。
$ vim ~/.jupyter/jupyter_notebook_config.py

使用Vim打开jupyter_notebook_config.py,可以用 :wq 是保存并退出,:/XXX 可以快速查找 XXX。下面是修改后的内容。

# Set options for certfile, ip, password, and toggle off
# browser auto-opening
c.NotebookApp.certfile = u'/absolute/path/to/your/certificate/mycert.pem'
c.NotebookApp.keyfile = u'/absolute/path/to/your/certifi`在这里插入代码片`cate/mykey.key'
# Set ip to '*' to bind on all interfaces (ips) for the public server
c.NotebookApp.ip = '*'
c.NotebookApp.password = u'sha1:bcd259ccf...<your hashed password here>'
c.NotebookApp.open_browser = False

# It is a good idea to set a known, fixed port for server access
c.NotebookApp.port = 8888
  1. 然后给Jupyter notebook配置上面生成的签名。
$ jupyter notebook --certfile=mycert.pem --keyfile mykey.key

打印出了本地访问Jupyter notebook的IP和端口,默认是[I 11:20:02.NotebookApp] https://test-desktop:8888/

2 本地

本地浏览器输入https://服务器IP:8888就可以访问啦,然后提示你输入的密码也是之前第2步设置过了!