Blender Python`bpy``uuuu init\.py`,显然是从不存在的模块`ubpy`导入的`

Blender Python`bpy``uuuu init\.py`,显然是从不存在的模块`ubpy`导入的`,python,module,blender,init,Python,Module,Blender,Init,我正在使用MacOSX和PyCharm、Python3.5.1和Blender2.77 我将Blender与Python脚本一起使用。我知道为了运行使用Blender的Python脚本(即导入bpy),我需要使用Blender-b-P/path/to/my_Python_script.py)从命令行运行它(尽管我不知道为什么)。这一切都很好,而且它可以工作,但我希望我可以从Python内部运行它,因为我将这些脚本与其他非混合Python代码一起使用,我喜欢使用PyCharm进行调试并完成几乎所有

我正在使用MacOSX和PyCharm、Python3.5.1和Blender2.77


我将Blender与Python脚本一起使用。我知道为了运行使用Blender的Python脚本(即导入
bpy
),我需要使用
Blender-b-P/path/to/my_Python_script.py
)从命令行运行它(尽管我不知道为什么)。这一切都很好,而且它可以工作,但我希望我可以从Python内部运行它,因为我将这些脚本与其他非混合Python代码一起使用,我喜欢使用PyCharm进行调试并完成几乎所有的事情。我知道我不能从PyCharm运行Blender Python脚本,但我想我还是会试试。我通过编辑“首选项”中的“项目结构”设置,包括
bpy
模块所在的父目录,确保PyCharm可以看到
bpy
模块,在我的机器上是
/Applications/blender.app/Contents/Resources/2.77/scripts/modules
。但是,当我尝试运行脚本时,它给出了
ImportError:没有名为“\u bpy”的模块
。我跟踪了错误的来源,罪魁祸首是
bpy
模块中的
\uuuuu init\uuuuuuuuuy.py
文件中的一行(其在我的机器上的位置是
/Applications/blender.app/Contents/Resources/2.77/scripts/modules/bpy/\uuuuu init\uuuuuuuuuuuuuuuuuuuy.py
);电话是:

from _bpy import types, props, app, data, context
因此,我试图在我的机器上搜索模块
\u bpy
,但在任何地方都找不到。所以它似乎是从一个不存在的模块中导入东西。不过,我知道我的脚本可以工作,因为我已经在Blender中成功运行了它


所以我的问题是,神秘的
\u bpy
模块到底是怎么回事,我和PyCharm都找不到,但Blender应用程序没有问题?我希望对这里可能发生的事情有一个大致的了解,所以欢迎有根据的猜测(以及明确的答案)。

您是否注意到了来自导入的
上面说
#内部混合器C模块
,应该是赠品

实现这一功能的魔法是,blender二进制文件包含
\u bpy
作为二进制python模块,blender使该模块在blender附带的python解释器中可访问,它在python解释器初始化期间执行此操作。如果没有内置到python模块中,则无法将普通blender二进制文件导入blender外部的python解释器中(见下文)

要想知道如何做,可以从上的Python文档开始。您可能还想查看blender的源代码,在其中可以找到用于构建blender的主要基于C的模块(如bpy、bgl、bmesh、mathutils)的C文件


还可以查看哪个有一个链接,指向将blender构建为Python模块的信息,这样就可以将其导入(无需gui)外部Python解释器。如果您在搜索pycharm,您将找到关于在pycharm和eclipse中使用
bpy
的几个答案,包括让blender作为外部解释器运行以进行调试的方法。

键入
import\bpy时的输出是什么_bpy.\uuuuu文件\uuuuuu
导入错误:没有名为“\u bpy”的模块,我假设
\u bpy
模块内置在搅拌机中,并且不存在;没有任何源文件。这是如何工作的?我的意思是,如果我试图将一个模块构建成一个程序,并在不分发源代码的情况下分发该程序,我将如何进行呢?这正是我想要的答案。进一步阅读的建议是一大优势。非常感谢。