【问题标题】:Running python script in Blender在 Blender 中运行 python 脚本
【发布时间】: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 脚本或作为扩展集成的所有方法。

标签: python blender


【解决方案1】:

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

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

以上代码来自以下链接:

Blender - Tips and Tricks

【讨论】:

  • 比接受的答案更容易,并且在进行更改时不需要不断重新加载
  • 但是每当我尝试运行脚本时,它会重新运行整个脚本并且不会删除最后一个脚本并混合两个脚本。
【解决方案2】:
  1. 在 Blender 中打开一个文本编辑器视图。
  2. 按 Alt + O,或转到文本>打开文本块并打开 .py 文件
  3. 然后只需按 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 的链接,我可以看看它并告诉你发生了什么。

      【讨论】:

        猜你喜欢
        • 2013-02-14
        • 2014-08-19
        • 2018-09-21
        • 2011-04-24
        • 2015-08-25
        • 2021-04-10
        • 1970-01-01
        • 2012-05-26
        • 1970-01-01
        相关资源
        最近更新 更多