3

您如何在 Eclipse 和 PyDev 中调试 Blender Python?

我尝试过的是:

http://www.luxrender.net/wiki/LuxBlend25_Debugging_with_eclipse

http://www.blender.org/forum/viewtopic.php?t=3914&sid=717a127d12596f89e4aea0c54938ef80

但非接缝工作?

问候

4

3 回答 3

3

Witold Jaworski 写了一本非常好的关于 Blender 附加编程的电子书。它包括分步说明如何使用 PyDev 设置 Eclipce 以调试 Blender 附加组件的章节。 Blender 2.5 的编程插件

于 2012-11-01T10:17:59.720 回答
2

以下是我设置调试的方式,略有不同,但基于 lux-render 教程。

首先,创建一个 .py 文件,我们将其命名为 debug.py,其中将包含一个函数,我们稍后将调用该函数来设置调试。将此文件放在与__init__.py模块主文件相同的文件夹中。根据 lux-renderer 教程,添加以下代码,更新 PYDEV_SOURCE_DIR。

import sys

def startdebug():
    try:
        # set the PYDEV_SOURCE_DIR correctly before using the debugger
        PYDEV_SOURCE_DIR = 'C:\Program Files\eclipse\plugins\org.python.pydev.debug_2.5.0.2012040618\pysrc'

        # test if PYDEV_SOURCE_DIR already in sys.path, otherwise append it
        if sys.path.count(PYDEV_SOURCE_DIR) < 1:
            sys.path.append(PYDEV_SOURCE_DIR)

        # import pydevd module
        import pydevd

        # set debugging enabled
        pydevd.settrace(None, True, True, 5678, False, False)
    except:
        pass

设置 PYDEV_SOURCE_DIR 时,请确保将其指向 org.python.pydev.debug_xxxxx。还有另一个与此类似的文件夹。为确保您拥有正确的文件夹,它将包含一个 /pysrc 文件夹。

现在在您的 main__init__.py中,这必须在任何其他导入语句之前才能正常工作。直接在 bl_info 部分下添加以下内容,因为奇怪的是搅拌器会自行解析。

DEBUGGING = True
if(DEBUGGING):
    import debug
    debug.startdebug()

将它放在这里可以避免像 lux-render 教程那样添加每个文件的跟踪。

  1. 在附加组件文件夹中的版本中添加一些断点,
  2. 切换到调试视角,
  3. 启动 Eclipses 调试服务器,
  4. 启动搅拌机
  5. 运行脚本,它将到达断点。

我发现人们遇到的常见问题:

  • 指向错误的pydev调试文件夹的路径,确保有一个/pysrc文件夹
  • 当 Pydev 更新时,更新 PYDEV_SOURCE_DIR 因为 debug_xxxxx 将发生变化
  • 没有运行 Eclipse 服务器,
  • 在文件的本地副本而不是 blender 附加目录中的版本上设置断点
  • 保存脚本并不意味着 Blender 会重新加载它、使用 imp、禁用/重新启用插件或重新启动 Blender。
于 2012-10-31T11:02:00.850 回答
1

有相当全面的说明来设置搅拌机和 Eclipse 以进行调试。 http://wiki.blender.org/index.php/User:Z0r/PyDevAndProfiling

虽然这适用于搅拌机游戏引擎,但其中大部分适用于普通搅拌机。

于 2012-11-16T07:01:20.887 回答