Blender加载项的PyDev和Eclipse设置
我按照本文中的说明设置了一个开发环境 目前,我尝试调试已安装的,尽管它似乎可以工作,但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.
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渲染教程那样添加每个文件的跟踪
- 将路径指向错误的pydev调试文件夹,确保存在/pysrc文件夹
- 当Pydev更新时,更新Pydev_SOURCE_DIR,因为调试_uxxxxx将发生更改
- 没有运行eclipse服务器
- 在文件的本地副本而不是blender加载项目录中的版本上设置断点
- 保存脚本并不意味着blender将重新加载脚本、使用imp、禁用/重新启用加载项或重新启动blender
编辑:我删除了它,因为我觉得这不能回答您的问题。但这是你坚持的结果。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()