【发布时间】:2016-09-08 07:03:55
【问题描述】:
我正在使用带有 PyCharm 和 Python 3.5.1 和 Blender 2.77 的 Mac OS X。
我正在将 Blender 与 Python 脚本一起使用。我知道为了运行使用 Blender 的 Python 脚本(即导入 bpy),我需要使用 blender -b -P /path/to/my_python_script.py 从命令行运行它(虽然我真的不知道为什么)。这一切都很好,它可以工作,但我希望我可以从 Python 内部运行它,因为我将这些脚本与其他非 Blender Python 代码一起使用,并且我喜欢使用 PyCharm 来调试和做几乎所有事情。我知道我不能只从 PyCharm 运行 Blender Python 脚本,但我想我还是会尝试。我通过编辑“首选项”中的“项目结构”设置来确保 PyCharm 可以看到bpy 模块,以包括bpy 模块所在的父目录,在我的机器上是/Applications/blender.app/Contents/Resources/2.77/scripts/modules。但是,当我尝试运行脚本时,它会给出ImportError: No module named '_bpy'。我跟踪了错误的来源,罪魁祸首是bpy模块中__init__.py文件中的一行(我机器上的位置是/Applications/blender.app/Contents/Resources/2.77/scripts/modules/bpy/__init__.py);该行是:
from _bpy import types, props, app, data, context
所以我尝试在我的机器上搜索模块_bpy,但在任何地方都找不到。所以它似乎是从一个不存在的模块中导入东西。但是,我知道我的脚本可以正常工作,因为我已经在 Blender 中成功运行了它。
所以我的问题是,神秘的 _bpy 模块到底发生了什么巫术,我和 PyCharm 都找不到,但 Blender 应用程序没有问题?我希望对这里可能发生的事情有一个大致的了解,因此欢迎有根据的猜测(当然还有准确的答案)。
【问题讨论】:
-
输入
import _bpy;_bpy.__file__时的输出是什么 -
ImportError: No module named '_bpy'
-
我假设
_bpy模块内置在搅拌机中并且没有任何源文件。 -
它是如何工作的?我的意思是,如果我尝试将一个模块构建到一个程序中并在不分发源代码的情况下分发该程序,我将如何去做?
标签: python module blender init