在 Blender 中运行 python 脚本

Posted

技术标签:

【中文标题】在 Blender 中运行 python 脚本【英文标题】:Running python script in Blender 【发布时间】:2012-07-21 05:13:23 【问题描述】:

我安装了 Blender 2.6 并尝试运行一个名为 drawcar.py 的脚本(使用 PyOpenGL)

我查看了导入脚本的文档,只能访问 Blender 的 python 控制台。

如何使用 Blender 从 Linux 终端运行 drawcar.py?

【问题讨论】:

为了完整性(因为这个 SO 页面在 Google 搜索结果中的排名很高)——官方文档中有一个全面而规范的介绍页面。和往常一样,它有点隐藏 :-D Python API Overview¶ 这个页面描述了 Python 是如何集成的,并列出了启动 python 脚本或作为扩展集成的所有方法。 【参考方案1】:

您也可以在python控制台中执行以下代码来执行外部脚本,而无需在文本编辑器中打开它:

filename = "/full/path/to/myscript.py"
exec(compile(open(filename).read(), filename, 'exec'))

以上代码来自以下链接:

Blender - Tips and Tricks

【讨论】:

比接受的答案更容易,并且在进行更改时不需要不断重新加载 但是每当我尝试运行脚本时,它会重新运行整个脚本并且不会删除最后一个脚本并混合两个脚本。【参考方案2】:
    在 Blender 中打开一个文本编辑器视图。 按 Alt + O,或转到文本>打开文本块并打开 .py 文件 然后只需按 Run script :D

附:除了在第 2 步中打开文件之外,您还可以点击“+ New”按钮并创建一个新脚本。

注意:在较新的版本中,Run Script 按钮标签已被替换为 Play 图标:

【讨论】:

谢谢,我刚刚想通了,但我看不到运行脚本的输出的方法。我检查了 Blender 的控制台——什么都没有! 不幸的是,它不在搅拌机的控制台中。它在 Blender 的终端窗口中。对于 linux/osx,您必须从终端运行 blender。而且我认为对于 Windows,以前在搅拌机旁边打开了一个命令行窗口。您仍然可以在帮助菜单中打开此功能,如本文所述:blender.org/documentation/blender_python_api_2_59_2/… 不过也可以在“文件”菜单中。 嗨,我按下了运行脚本按钮,但不幸的是它给了我错误“Python 脚本失败。现在在控制台中查看”并且在控制台中什么都没有。那么我怎么能猜出脚本有什么错误呢?尝试使用此文件名 = "/Users/sandeepsingh/Desktop/objc.py" exec(compile(open(filename).read(), filename, 'exec')) Traceback (最近一次调用最后一次) 使用 python 控制台运行它:文件“”,第 1 行,在 文件“/Users/sandeepsingh/Desktop/objc.py”,第 9 行,在 中 import Blender ImportError: No module named 'Blender' but here show me也出错了? 任何帮助将不胜感激..Blender 版本是 2.65a。 在 windows 中,您可以通过转到菜单 Window -> Toggle System Console 来显示 Blender 系统控制台【参考方案3】:

这个答案为时已晚,但可以帮助任何有同样问题的人

通过终端:

blender yourblendfilenameorpath --python drawcar.py 

来自手册页

       -P or --python <filename>
              Run the given Python script file.

【讨论】:

【参考方案4】:

通过另一个脚本或从控制台运行脚本:

import bpy

script = bpy.data.texts["script_name.py"]
exec(script.as_string())

【讨论】:

【参考方案5】:

很可能 drawcar.py 正在尝试在 Blender 中执行 pyOpenGL 命令,如果不进行修改,这将无法正常工作。我怀疑您也遇到了一些导入错误(如果您查看命令控制台)。 Blender 有它自己的用于 opengl 的内部 python 包装器,称为 bgl,它确实包含许多 opengl 标准,但都以 bgl 为前缀。

如果你有 drawcar.py 的链接,我可以看看它并告诉你发生了什么。

【讨论】:

以上是关于在 Blender 中运行 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何运行带有blender参数的python脚本?

Blender 导出插件和 bl_idname

在 Blender 脚本中测量路径长度?

(17)Blender源码分析之闪屏窗口的菜单显示过程

(17)Blender源码分析之闪屏窗口的菜单显示过程

如果在后台执行脚本,如何在 Blender Python 上使用旋转运算符?