在Eclipse和PyDev中调试Blender Python?

4
3个回答

3

以下是我设置调试的方法,它与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文件夹。

现在,在您的主要__init__.py中,这必须位于任何其他导入语句之前才能正常工作。在bl_info部分下直接添加以下内容,因为奇怪的是,blender会自己解析它。

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

在这里使用它可以避免像Lux-render教程那样为每个文件添加跟踪。

  1. 向add-ons文件夹中的版本添加一些断点,
  2. 切换到调试透视图,
  3. 启动Eclipses调试服务器,
  4. 启动blender
  5. 运行脚本,它会触发断点。

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

  • 将路径指向错误的pydev调试文件夹,请确保存在/pysrc文件夹
  • 当Pydev更新时,请更新PYDEV_SOURCE_DIR,因为debug_xxxxx将更改
  • 没有运行eclipse服务器,
  • 在本地副本上设置断点,而不是在blender插件目录中的版本上设置断点
  • 保存脚本并不意味着blender会重新加载它,请使用imp,禁用/重新启用插件或重新启动Blender。

3

有一本由Witold Jaworski撰写的非常好的电子书,关于Blender插件编程。其中包括一些章节,详细介绍了如何使用PyDev设置Eclipse来调试Blender插件。 为Blender 2.5编写插件


我正在使用Mac电脑。我知道这个问题,只有在你不从终端启动Blender(也就是说从Blender.app启动)时才能正常工作。因此,你没有得到任何控制台信息吗?同时,在Eclipse中调试控制台也无法正常工作(没有活动的调试器或评估错误)。有什么想法吗? - Chris G.
你需要对模块文件夹中的版本运行调试器。调试器会针对已注册的版本运行。虽然可以通过从Eclipse启动来解决这个问题,但输出将进入控制台,并且只有在关闭Blender时才会刷新。因此,请在已安装的版本上设置断点,一旦它们被触发,Eclipse将自动打开文件,您就可以进行调试了。 - neomonkeus

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接