使用eclipse+pydev远程调试OpenStack
2016-05-17 19:05
435 查看
1, 对于要远程调试的WSGI web应用中,添加如下代码,其中172.16.1.122是指远程安装eclipse机器的ip地址。
import pydevd
pydevd.settrace(‘172.16.1.122’, 1234, stdoutToServer=False, stderrToServer=False)
若用了monkey_patch的话,记得将thread设置成Flase, eventlet.monkey_patch(os=False, thread=False)
举例, 假如我们要调试nova-compute,可照下列方式启动服务,它将自动做如上设置
nova-compute –remote_debug-host 172.16.1.122 –remote_debug-port 1234
2, eclipse端,首先设置环境变量
import sys
sys.path.append(‘/bak/java/eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/’)
或者:
export PYTHONPATH=/bak/java/eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/:$PYTHONPATH
或者在eclipse工程点右键的属性的PyDev-PYTHONPATH里添加一个External Libraries,方法多得很,都行。
3,eclipse端,其次要保证eclipse端也有同样的代码,如果在不同目录,可以使用修改/bak/java/eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/pydevd_file_utils.py文件:
PATHS_FROM_ECLIPSE_TO_PYTHON = [(r’/bak/openstack’, r’/server_side/openstack’)]
4, 将远端nova-compute服务启动后(pydevd.settrace之后),在本地的eclipse中进入”Debug”视图后会看到一个“PyDev: start the pydev server”按钮然后点击它,这时候eclipse就和远端连接上了。
剩下该设置断点设置断点,平时该怎么做就怎么做了。
我在看完上面的资料后还是很疑惑,感觉没说清楚。 经过使用测试后总结下经验,使用中大家需注意以下四个问题:
eclipse端是debug服务端 , 即端口的监听端, 也就是说远端要调试的python代码文件是作为客户端连接eclipse端的端口(如:默认端口 5678), 切记!!我在这里吃了大亏。
在eclipse插件plugins目录查找到pydevd.py文件后,将文件所在的整个个文件夹copy到需要调试的机器的python文件的site-packages目录下,并保证可以访问到pydevd.py(我使用了在site-packages目录下建立pysrc.pth文件指定路径方式),可参考文章最后的url。
如果远程调试,一般python代码的路径在eclipse端与远程机器上的路径是不一样的,一定记住修改pydevd_file_utils.py中的PATHS_FROM_ECLIPSE_TO_PYTHON值,修改具体值可以看下文件中关于这个变量的注释,而且注释中还有举例说明。
在需要调试的代码中使用下面代码:
官网参考: http://www.pydev.org/manual_adv_remote_debugger.html
其它参考:http://blog.csdn.net/tantexian/article/details/47003385
import pydevd
pydevd.settrace(‘172.16.1.122’, 1234, stdoutToServer=False, stderrToServer=False)
若用了monkey_patch的话,记得将thread设置成Flase, eventlet.monkey_patch(os=False, thread=False)
举例, 假如我们要调试nova-compute,可照下列方式启动服务,它将自动做如上设置
nova-compute –remote_debug-host 172.16.1.122 –remote_debug-port 1234
2, eclipse端,首先设置环境变量
import sys
sys.path.append(‘/bak/java/eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/’)
或者:
export PYTHONPATH=/bak/java/eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/:$PYTHONPATH
或者在eclipse工程点右键的属性的PyDev-PYTHONPATH里添加一个External Libraries,方法多得很,都行。
3,eclipse端,其次要保证eclipse端也有同样的代码,如果在不同目录,可以使用修改/bak/java/eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/pydevd_file_utils.py文件:
PATHS_FROM_ECLIPSE_TO_PYTHON = [(r’/bak/openstack’, r’/server_side/openstack’)]
4, 将远端nova-compute服务启动后(pydevd.settrace之后),在本地的eclipse中进入”Debug”视图后会看到一个“PyDev: start the pydev server”按钮然后点击它,这时候eclipse就和远端连接上了。
剩下该设置断点设置断点,平时该怎么做就怎么做了。
我在看完上面的资料后还是很疑惑,感觉没说清楚。 经过使用测试后总结下经验,使用中大家需注意以下四个问题:
eclipse端是debug服务端 , 即端口的监听端, 也就是说远端要调试的python代码文件是作为客户端连接eclipse端的端口(如:默认端口 5678), 切记!!我在这里吃了大亏。
在eclipse插件plugins目录查找到pydevd.py文件后,将文件所在的整个个文件夹copy到需要调试的机器的python文件的site-packages目录下,并保证可以访问到pydevd.py(我使用了在site-packages目录下建立pysrc.pth文件指定路径方式),可参考文章最后的url。
如果远程调试,一般python代码的路径在eclipse端与远程机器上的路径是不一样的,一定记住修改pydevd_file_utils.py中的PATHS_FROM_ECLIPSE_TO_PYTHON值,修改具体值可以看下文件中关于这个变量的注释,而且注释中还有举例说明。
在需要调试的代码中使用下面代码:
import pydevd pydevd.settrace(‘eclipse端服务器地址‘, port=端口5678, stdoutToServer=True, stderrToServer=True)
官网参考: http://www.pydev.org/manual_adv_remote_debugger.html
其它参考:http://blog.csdn.net/tantexian/article/details/47003385
相关文章推荐
- java基础(5) 数组的操作
- Spring jdbc批量存储数据
- java基础学习(4)
- java内部类详细说明
- 关于spring mybatis 事务
- myEclipse出现:"Building workspace" has encountered a problem
- java中关于线程的小知识
- Java中Math的常用函数
- 用eclipse导入jar包并使其在一个文件夹下
- Spring实现DAO模块
- java之判断101-200间的素数
- Eclipse中修改项目名称
- java 面向对象练习题6
- JAVA线程-JAVA同步
- Java面向对象小结
- java中类的各种定义
- java 字符串转为list
- 学习SpringMVC(八)之ModelAttribute
- Java中equals和==的区别
- Eclipse 与 Android Studio 差异