Pycharmremotedebugopenstack.docx
- 文档编号:25767068
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:12
- 大小:701.33KB
Pycharmremotedebugopenstack.docx
《Pycharmremotedebugopenstack.docx》由会员分享,可在线阅读,更多相关《Pycharmremotedebugopenstack.docx(12页珍藏版)》请在冰豆网上搜索。
Pycharmremotedebugopenstack
环境:
windows7、pycharm3.4.1、centos6.5(部署openstackicehource版)
1、在windows机器安装pycharm
将windowspycharm安装目录下的pycharm-debug.egg拷贝到centos机器(如果centos的python为3版本以上,则拷贝pycharm-debug-py3k.egg):
在centos6.5安装debugegg:
easy_installpycharm-debug.egg
2、配置windowspycharm的远程调试配置(Run->Editconfigurations...):
注:
其中Localhostname为:
windows本机当前ip地址。
port为:
当前pycharm用来监听远程debug连接的端口。
3、pycharm启动远程debug监听远程调试:
点击右上角出现的刚刚配置的debug:
下面窗口将出现:
4、将Waitingforconnection...上面的两句代码copy到对应断点调试代码中:
importpydevd
pydevd.settrace('192.168.1.133',port=51234,stdoutToServer=True,stderrToServer=True)
接下来以nova的get_all实例为例调试:
vim/usr/lib/python2.6/site-packages/nova/compute/api.py
添加上述内容后api代码如下:
5、重启nova服务,执行:
novalist命令,或者dashboard点击获取instance的页签:
远程debug连接到pycharm,进入了调试模式。
6、此处发现pycharm并没有进入到get_all断点调试的代码处,而是进入了thread.py的线程文件,这是因为nova底层代码
使用的eventlet导致,解决此问题参考如下:
将
eventlet.monkey_patch(os=False,thread=False)
替换为:
eventlet.monkey_patch(os=False,select=True,socket=True,thread=False,time=True,psycopg=True)
查找nova模块中的eventlet.monkey_patch:
grep-rn'eventlet.monkey_patch'/usr/lib/python2.6/site-packages/nova
vim/usr/lib/python2.6/site-packages/nova/cmd/__init__.py
替换eventlet.monkey_patch(os=False,thread=False)为:
eventlet.monkey_patch(os=False,select=True,socket=True,thread=False,time=True,psycopg=True)
安装之前步骤,重启服务,novalist即可以看到正常的调试代码:
补充:
pycharm可以将本机代码和远程代码进行映射(EditPathMapping),就不用每次去远程下载远程:
7、如果还是不能正常调试,请将pycharm安装文件内容替换:
将:
SUPPORT_GEVENT=os.getenv('GEVENT_SUPPORT','False')=='True'
替换为:
SUPPORT_GEVENT=True
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Pycharmremotedebugopenstack