想在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远程调试