版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
在windows上挣扎了多年,开发openstack时,也想过从windows开发。尝试过但是失败了的方法有:
a) 在windows上运行openstack的某些组件。注意,这里仅仅是某些组件,不是整个openstack。
虽然理论上python在windows上也能运行,windows上也有pip install,但是,整个环境差太多了。就算你最后把所有需要的东西安装好了,运行时候还是会报这样那样的错。或许高手可以解决这些问题,但是不建议新手尝试这条路。
b) windows上远程debug,用eclipse+pydev。除去配置上的繁琐,例如配置path,设置pydevd_file_utils.py, 加入pydevd.settrace,两边文件一致。 最终,调试也不稳定,断点进不去,重启进程复杂。
痛定思痛,还是用linux吧,本人选用的是fedora 20,还是eclipse+pydev,openstack是用devstack安装,默认的安装路径在/opt/stack下。以keystone为例,具体步骤如下:
1) 安装配置好eclipse+pydev,具体步骤网上一大把,这里就不再赘述了。
2)安装并重启eclipse之后. 设置workspce为 /opt/stack,也就是devstack的默认安装目录。完了又是一次重启.
3)新建一个pydev project,如下图配置
4) 这个时候就可以在eclipse里面编辑keystone下的代码了,但是要实现debug,还需要几步。
在这步,我们删除devstack启动的keystone 服务,否则之后的debug进程会与之冲突。
ps -ef | grep keystone
再kill所有keystone的进程。
5)配置keystone的debug信息。打开Debug-》Debug Configurations
在python run 下新建一个configuration, 如下配置
再在Arguments 里面填上 --standard-threads。
这里创建了一个配置项,源文件是keystone里面,main 模块,也就是main函数,来自与keystone-all。 --standard-threads 参数是为了调试的时候多线程不来捣乱。
至此,所有配置完成,点击右下角的Debug,就能看见keystone启动。 为了测试debug,在keystone/assignment/controllers.py 设置一个断点,在terminal里面调用keystone tenant-list,可以看到断点处停住了,并且debug信息都能看到。
总结,当你不是大牛的时候,还是跟大家用同一个平台开发吧。