脚本与安全

在混合文档中包含Python脚本的能力对于绑定和自动化等高级任务很有价值。但是,它带来了安全风险,因为Python不会限制脚本可以执行的操作。因此,只应运行来自您知道和信任的源的脚本。默认情况下禁用自动执行;但是,某些混合文档需要此功能才能正常运行。

当blend文件试图运行脚本并且未被允许,标题栏将显示信息,并提供 允许执行 或者 忽略 该脚本的选项。

../../_images/advanced_scripting_security_autorun-scripts-dialog.png

信息编辑器标题栏显示的自动运行警告。

Blend文件中的脚本

自动运行

下面是一些blend文件可能自动运行脚本的方式。

注册的文本块

文本数据块可以启用 注册 选项,这意味会在启动时自动加载。

动画驱动

Python表达式可以用于 驱动 值,并且经常在进阶的绑定和动画中使用。

手动运行

还有一些情况下,blend文件需要用户交互才能运行脚本(因此禁用自动运行也会运行),但你需要清楚这种情形,因为它不是那么显而易见。

  • 在文本编辑器中运行脚本。

  • 使用 Freestyle 渲染,由于 Freestyle 使用脚本控制线条样式。

控制脚本运行

Blender提供了一些用于控制是否允许blend文件中脚本自动运行的方法。

首先,文件浏览器具有 受信任源 选项,您可以根据具体情况使用该选项来控制自动执行。由于您可能会忘记设置此选项,或者可能不通过 "文件浏览器" 打开文件,因此您可以更改默认值(如下所述)。

设置默认值

In the Preferences, there is the toggle to Auto Run Python Scripts. This means the Trusted Source option in the File Browser will be enabled by default, and scripts can run when blend-files are loaded without using the File Browser. Once enabled you have the option to exclude certain directories; a typical configuration would be to trust all paths except for the download directory.

../../_images/animation_drivers_troubleshooting_autorun-user-preference.png

自动运行Python脚本。

命令行

您可能希望从命令行执行批处理渲染或其他一些任务,在没有界面的情况下运行Blender。在这种情况下,首选项仍在使用,但您可能希望覆盖它们:

  • 使用 -y or --enable-autoexec 启用

  • 使用 -Y or --disable-autoexec 禁用

例子

要在后台模式下渲染动画,允许驱动进程和其他脚本运行,请执行以下操作:

blender --background --enable-autoexec my_movie.blend --render-anim

Note

命令行参数也可以用来正常启动Blender,并且覆盖用户设置。