pycharm远程python调试

来源:互联网 发布:淘宝客服中心模板制作 编辑:程序博客网 时间:2024/05/23 07:22

想在windows上安装的pycharm上进行tensorflow的开发调试, 但是尴尬的是本机上并没有配置相应的环境, 也懒得在重新配置; 正好拿实验室的服务器(Ubuntu16.04)配置环境直接远程调试开发tensorflow机器学习的代码.

1. 在远程计算机上安装pydevd模块

首先,在本地开发环境的PyCharm安装路径中找到pycharm-debug.egg文件(若远程计算机运行的是Python3,则需要pycharm-debug-py3k.egg);

然后,将pycharm-debug.egg文件拷贝至远程计算机, 并安装

sudo easy_install pycharm-debug.egg

注: pip命令无法安装,只能使用easy_install

最后,在远程计算机的Python命令行中输入import pydevd,若没有报错则说明pydevd模块安装成功。

2. 本地操作

首先, 打开pycharm, 新建python工程
这里写图片描述

在Interpret栏最右侧, 鼠标左键单击后出现下图所示, 选择“Add Remote”
这里写图片描述

根据自己的情况选择, 我这里选择“SSH Credentials”, 并输入远程服务器IP+用户名+密码
这里写图片描述

这里可以看到, Interpreter栏内容已经指向了远程服务器端
这里写图片描述

在新建的工程中创建一个python脚本,直接运行, 测试结果表明一切OK!
这里写图片描述

注意: tensorflow的环境在服务器上安装在VirtualEnv中, 同样可以只修改python的文件的位置为virtualenv中tensorflow中python位置即可.

补充: 远程调试的工作原理

在远程调试的模式下,PyCharm(IDE)扮演服务端(Server)的角色,而运行在远程计算机上的应用程序扮演客户端(Client)的角色。正因如此,进行远程调试时,需要先在本地开发环境中设定端口并启动IDE,IDE会对设定的端口开始监听,等待客户端的连接请求;那远程计算机中的应用程序又是怎样与IDE建立通讯连接的呢?

针对远程调试功能,PyCharm提供了pydevd模块,该模块以pycharm-debug.egg的形式存在于PyCharm的安装路径中。远程计算机安装该库文件后,然后就可以调用pydevd.settrace方法,该方法会指定IDE所在机器的IP地址和监听的端口号,用于与IDE建立连接;建立连接后,便可在IDE中对远程在远程计算机中的程序进行单步调试。

参考: 利用PyCharm进行Python远程调试