在Blender中运行Python脚本

42

我安装了 Blender 2.6,现在想运行一个名为 drawcar.py 的脚本(使用 PyOpenGL)。

我查阅了导入脚本的文档,只找到了 Blender 的 Python 控制台。

请问如何从 Linux 终端中运行 drawcar.py 并与 Blender 配合使用?


为了完整起见(因为此SO页面在Google搜索结果中排名较高)-官方文档中有一份全面且规范的介绍页面。像往常一样,它有点隐藏 :-D Python API Overview¶ 此页面描述了Python如何集成,并列出了启动Python脚本或作为扩展集成的所有方法。 - Ichthyo
5个回答

39

你也可以在Python控制台中执行以下代码,以运行外部脚本而不必在文本编辑器中打开它:

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

以上代码来自以下链接:

Blender - 技巧与窍门


1
比起被接受的答案要容易得多,而且在进行更改时不需要不断重新加载。 - JeffThompson
但是每当我尝试运行脚本时,它会重新运行整个脚本,而不会删除上一个脚本并混合两个脚本。 - Heisenberg

35
  1. 在Blender中打开文本编辑器视图。
  2. 按下Alt + O键,或转到文本> 打开文本块并打开.py文件。
  3. 然后只需单击“运行脚本”即可 :D

P.S. 在步骤2中,您可以点击“+ 新建”按钮创建一个新的脚本,而不是打开文件。

注意:在较新的版本中,“运行脚本”按钮标签已被替换为一个“播放”图标:enter image description here


3
谢谢,我刚刚弄明白了这个,但我不知道如何查看运行脚本的输出。我检查了Blender的控制台——没有任何东西! - CyberShot
7
很遗憾,它不在Blender的控制台中。 它位于Blender的终端窗口中。对于Linux/OSX系统,您需要从终端运行Blender。 而且我认为对于Windows系统曾经有一个命令行窗口与Blender一起打开。您可以在帮助菜单中打开它,正如这篇文章所述:http://www.blender.org/documentation/blender_python_api_2_59_2/info_tips_and_tricks.html 它也可能在文件菜单中。 - Ertyui
3
你好,我按下了运行脚本按钮,但不幸的是它给了我一个错误提示:“Python脚本失败。现在在控制台查看。”但是在控制台中没有任何内容。我应该怎样猜测脚本出了什么问题呢?我尝试使用python控制台运行这个文件名为“/Users/sandeepsingh/Desktop/objc.py”的脚本,但是它也显示了错误信息: Traceback (most recent call last): File "<blender_console>", line 1, in <module> File "/Users/sandeepsingh/Desktop/objc.py", line 9, in <module> import Blender ImportError: No module named 'Blender' 请问这里显示的错误是什么呢? - Sandeep Singh
9
在Windows中,您可以通过转到菜单“窗口”->“切换系统控制台”来显示Blender系统控制台。 - Mr Bell
尽管原问题并未要求,但我会编辑答案并添加第二步:“或者点击“+”创建新文本并粘贴您的文本”,因为这个StackExchange页面在谷歌搜索“在Blender中运行Python脚本”时排名第一。 - ChameleonScales
显示剩余2条评论

17

这个答案来得太晚了,但为了帮助有同样问题的人

通过终端:

blender yourblendfilenameorpath --python drawcar.py 

来自 man 手册

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

能否向Python脚本传递参数? - Nagabhushan S N

16

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

import bpy

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

0

很可能是drawcar.py试图在Blender中执行pyOpenGL命令,而这需要进行修改才能正常工作。我猜测你也会遇到一些导入错误 (如果你查看命令控制台的话)。Blender有自己内部的Python封装程序用于opengl,称为bgl,它包括许多OpenGL标准,但所有前缀都是bgl。

如果你有drawcar.py的链接,我可以看一看并告诉你出了什么问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接