Blender加载项的PyDev和Eclipse设置

Blender加载项的PyDev和Eclipse设置,eclipse,pydev,blender,Eclipse,Pydev,Blender,我按照本文中的说明设置了一个开发环境 目前,我尝试调试已安装的,尽管它似乎可以工作,但eclipse仍然显示许多错误消息,如: class Mapping(object): def __init__(self, joint=None, id=None, bone=None, other=None): ... self.bone_matrix = bpy.bloop.armature.matrix_world.inverted() * self.bone.

我按照本文中的说明设置了一个开发环境

目前,我尝试调试已安装的,尽管它似乎可以工作,但eclipse仍然显示许多错误消息,如:

class Mapping(object):

    def __init__(self, joint=None, id=None, bone=None, other=None):
        ...
        self.bone_matrix = bpy.bloop.armature.matrix_world.inverted() * self.bone.bone.matrix_local.inverted()
                               ^^^^
                               ErrorMsg: Undefined variable from import: bloop
外部库的配置如下所示:

Blenders版本为2.67,该附加组件是为2.59开发的。我绝对没有在blender中使用Python的经验

另一类错误是:

Unresolved import: MappingSet   bloop.py

from .mapping_set import MappingSet
其中MappingSet与尝试导入的bloop.py位于同一文件夹中

项目结构如下(我没有源文件夹,因为我想就地编辑)

我做错了什么


至少抑制错误消息的解决方法是在这些行的末尾使用#@unsolvedImport和#@UndefinedVariable。

我以不同的方式设置调试,但仍然基于lux渲染教程

首先,创建一个.py文件,我们称之为debug.py,它将包含一个函数,稍后我们将调用该函数来设置调试。将此文件与模块的主
\uuuu init\uuuu.py
放在同一文件夹中。根据lux渲染器教程,添加以下代码,更新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
在这里使用它可以避免像lux渲染教程那样添加每个文件的跟踪

  • 在Add-ons文件夹中的版本中添加一些断点
  • 切换到调试透视图
  • 启动Eclipse调试服务器
  • 启动搅拌机
  • 运行脚本,它将到达断点
  • 我发现人们遇到的常见问题有:

    • 将路径指向错误的pydev调试文件夹,确保存在/pysrc文件夹
    • 当Pydev更新时,更新Pydev_SOURCE_DIR,因为调试_uxxxxx将发生更改
    • 没有运行eclipse服务器
    • 在文件的本地副本而不是blender加载项目录中的版本上设置断点
    • 保存脚本并不意味着blender将重新加载脚本、使用imp、禁用/重新启用加载项或重新启动blender
    对于设置blender和eclipse进行调试,有很好的说明。

    虽然这是为搅拌机游戏引擎,其中大部分适用于普通搅拌机。希望这有帮助


    编辑:我删除了它,因为我觉得这不能回答您的问题。但这是你坚持的结果。

    Blenders的版本是2.67,附加组件是为2.59开发的。这可能是问题所在,您是否尝试过在2.67中运行它?API几乎每次发布都会更改。正如@iKlsR所说的,请确保加载项正常工作并已启用。在blenders内部python控制台类型打印(bpy.bloop)中进行测试。我怀疑它的工作,因为所提到的改变API。我也不会依赖pydef生成器,因为它只适用于2.59。@stacker我删除了它,因为我觉得这不能回答您的问题。但这是因为你坚持。
    DEBUGGING = True
    if(DEBUGGING):
        import debug
        debug.startdebug()