0

我有已经基于 Scons 构建的 python 项目。

我正在尝试使用 Eclipse IDE 和 Pydev 来修复源代码中的一些错误。

我已经安装了 Eclispe Sconsolidator 插件。

我的项目就像下面的项目 A 所有源代码,包括定义所有 tager、environmet 等的 Sconscript 文件。

Eclipse 为我提供了向项目添加 Scons 特性。添加后,Scons 会自动获取我的 Sconscript 文件并执行。

== Running SCons at 10/28/13 1:59 PM ==

Command line: /opt/gcdistro/app/scons/2.3.0/bin/scons -u --jobs=16

scons: Reading SConscript files.

我想知道如何在 Scons 正在执行的项目中的一些 .py 文件中放置断点。

4

2 回答 2

0

经过一番挣扎,我能够找到我的问题的答案。由于 SCons 本身就是一个 Python 模块,因此可以在 Eclipse 中使用 PyDev 对其进行调试。这不是我想要的最佳解决方案,但却是最接近的。

第 1 步:我禁用了项目的 Eclipse SCons 特性。

第 2 步:创建一个主文件,它将执行与 SCons 相同的功能,但实例化 SCons 主函数​​的 python 对象。

第 3 步:在我的脚本中设置需要的断点并且它能够执行它。

import os
import sys

if __name__ == '__main__':
    sys.path.append('/gpfs02/gcdistro/app/scons/2.3.0/engine/')
    sys.path.append('/gpfs02/gcdistro/app/scons/2.3.0/bin/')
    sys.path.append('/gpfs02/gcdistro/app/scons/2.3.0/engine/SCons/')
    import SCons
    from SCons import Script
    Script.main()
于 2013-10-29T08:41:12.077 回答
0

调试 SCons 项目可能很困难。您在 SConstruct 或 SConscript python 脚本中所拥有的只是更大图景的一部分。SCons 以多步方式构建,首先它读取脚本并构建其树,然后分析这些树并仅构建构建所需的内容。因此,您可能只能调试读取 python 脚本的声明性部分。

尝试像调试任何其他 python 程序一样调试它,但我怀疑你会走得很远。

于 2013-10-28T15:23:09.747 回答