运行 Python Hiero 插件
Run Python plugins in Hiero
我在执行来自 Hiero 的自定义 python 代码时遇到了一个小问题。众所周知,首先要查找详细信息的地方是官方文档 "Nukepedia"、Python Dev Guide 和 Hiero User Guide。根据 Python 开发指南,Hiero 默认创建一个“.hiero”目录,让人们可以添加插件路径以在软件中使用它们。好吧,我找不到那个目录,经过几次测试后我推断 Hiero 正在使用保存在“.nuke”目录中的 init.py。
所以我想也许我可以在那里添加插件路径,但一直收到著名的 _fnpython 模块导入错误(在创建 Python/Startup 目录之前)。
我在 .nuke 中添加了 Python/Startup 文件夹并在 Startup 中添加了插件,我得到了同样的错误,我什至尝试通过在 init.py 中添加插件的路径并得到相同的结果也有错误。
然后我创建了一个“.hiero”文件夹并做了与以前相同的事情,但 Hiero 从未考虑过该文件夹,我通过在控制台中打印一些字符串推断出 Hiero 总是使用 init.py保存在“.nuke”文件夹中并一直显示相同的错误。
最后,我尝试查看安装过程并尝试分离 Nuke 和 Hiero 的文件夹,也许这会创建“.hiero”目录,但一切都是自动化的。
我想要 运行 的代码由 Nuke 和 Hiero(在示例目录中)给出,我只是想不出要从程序。
我应该怎么做才能解决这个问题?
提前致谢。
The Foundry HIERO 的设置与 NUKE 略有不同。
HIERO 有一个 core
模块。您会在 __init__.py
文件中看到它:
import FnRedirect
import FnPythonFixes
import core
import ui
try:
if hasattr(core, "taskRegistry"):
import importers
import exporters
except ImportError as e:
pass
我运行在 Mac 上安装 HIERO 和 NUKE STUDIO,所以包内容中有 HIERO 的 __init__.py
文件的完整路径:
/Applications/Nuke10.5v5/Contents/MacOs/pythonextensions/site-packages/hiero/__init__.py
您需要使用以下方法导入此模块:
import hiero.core
或使用对 core
包的引用:
from core import *
要找到 HIERO 的当前路径,您必须 运行 在其脚本编辑器中输入以下行:
print hiero.core.pluginPath()
单击此 link 了解更多详情:Hiero's Environment Setup
所有这些说明都适用于 macOS 10.9 及更高版本。这里有两个步骤:第一个用于终端模式,第二个用于 UI 模式。
区块 1:setup for Terminal Sessions
您需要在 Home
区域手动创建 .hiero
目录。
运行ning Python 启动时推荐的默认位置是:
~/.hiero/Python/Startup
~/.hiero/Python/StartupUI
在您的 bash
终端(当您在 Home
用户目录中时)输入以下行:
mkdir .hiero/
然后:
mkdir .hiero/Python/
然后:
mkdir .hiero/Python/StartupUI/
然后导航至 Home
目录:
cd ~
并检查它:
ls -a
您还可以使用环境变量 HIERO_PLUGIN_PATH
指定任意数量的用户定义路径,就像标准 Unix PATH
环境变量一样。
为此,您需要在 .bash_profile
中设置一个 environment variable
。要在 运行 终端 PICO
编辑器中输入(请记住,sudo
命令需要管理员密码):
sudo pico .bash_profile
并将这三行粘贴到其中(将 swift
更改为 <yourName>
并保存此文件):
echo HIERO environment var is set...
export HIERO_PLUGIN_PATH=/Users/swift/.hiero/Python/StartupUI/
export PATH=$PATH:$HIERO_PLUGIN_PATH
用ctrl写出一个文件o
使用 ctrl x
退出 pico 编辑器
重启终端
在终端中,您可以打印此环境变量键入:
printenv HIERO_PLUGIN_PATH
你应该在 StartupUI
目录 menu.py
中放入任何一组 xxxx.py
或 xxxx.pyc
文件,以及 __init__.py
文件。
现在您可以在 Terminal Mode
.
中使用 /Users/swift/.hiero/Python/StartupUI/
路径
区块 2:setup for UI Sessions
要指定 HIERO 在加载插件时搜索的当前路径,您需要使用以下行创建 __init__.py
文件:
import hiero.core
path='/Users/swift/.hiero/Python/Startup/'
hiero.core.addPluginPath(path)
之后在 ~/.nuke/
文件夹下创建 Python/Startup/
个子目录。
这不是错误:我输入了 .nuke
。
然后将此 __init__.py
文件放入 /Users/swift/.nuke/Python/Startup/
目录。
如果成功,请重新启动 HIERO(或 NUKE STUDIO)。
之后启动 HIERO 或 NUKE STUDIO 和 运行
print hiero.core.pluginPath()
在 HIERO 的脚本编辑器或 NUKE STUDIO 的脚本编辑器中执行命令,您将看到以下结果:
之后你会在 /Users/swift/.nuke/Python/Startup/
目录中找到新的 __init__.pyc
文件。
启动 HIERO 时发现的每个包或模块都会导入并添加到内置包 hiero.plugins
。
测试 1:custom_guides.py
我没有 HIERO 的商业版本,所以我使用 NUKE STUDIO NC 测试了 custom_guides.py
脚本(发现 here )。
我将 custom_guides.py
放在 ~/.nuke/Python/Startup
目录中,然后在 ~/.nuke
目录中的 NUKE init.py
文件中添加了两行。
import nuke
nuke.pluginAddPath("./Python/Startup")
我唯一能说的是:"it works"
做和我一样的动作,它对 HIERO 有用。
查看 safe_zone
和 masking_ratio
下拉菜单。它们是不同的:之前和之后。
上传custom_guides.py
脚本前:
上传custom_guides.py
脚本后:
# file custom_guides.py contains these lines:
viewer_masks = [
hiero.ui.guides.MaskGuide("NTSC", 0.91),
hiero.ui.guides.MaskGuide("PAL", 1.09),
hiero.ui.guides.MaskGuide("NTSC_16:9", 1.21),
hiero.ui.guides.MaskGuide("PAL_16:9", 1.46),
hiero.ui.guides.MaskGuide("Cinemascope 2:1", 2.0)
]
测试 2:web_browser.py
我将 web_browser.py
文件放在 ~/.nuke/Python/Startup
目录中。此 Python 脚本使用 PySide Qt 编写的 Web 浏览器创建可停靠面板。
我没有 HIERO 的商业版本,所以我使用 NUKE STUDIO NC 测试了 web_browser.py
脚本(找到 here )。
我在执行来自 Hiero 的自定义 python 代码时遇到了一个小问题。众所周知,首先要查找详细信息的地方是官方文档 "Nukepedia"、Python Dev Guide 和 Hiero User Guide。根据 Python 开发指南,Hiero 默认创建一个“.hiero”目录,让人们可以添加插件路径以在软件中使用它们。好吧,我找不到那个目录,经过几次测试后我推断 Hiero 正在使用保存在“.nuke”目录中的 init.py。
所以我想也许我可以在那里添加插件路径,但一直收到著名的 _fnpython 模块导入错误(在创建 Python/Startup 目录之前)。
我在 .nuke 中添加了 Python/Startup 文件夹并在 Startup 中添加了插件,我得到了同样的错误,我什至尝试通过在 init.py 中添加插件的路径并得到相同的结果也有错误。
然后我创建了一个“.hiero”文件夹并做了与以前相同的事情,但 Hiero 从未考虑过该文件夹,我通过在控制台中打印一些字符串推断出 Hiero 总是使用 init.py保存在“.nuke”文件夹中并一直显示相同的错误。
最后,我尝试查看安装过程并尝试分离 Nuke 和 Hiero 的文件夹,也许这会创建“.hiero”目录,但一切都是自动化的。
我想要 运行 的代码由 Nuke 和 Hiero(在示例目录中)给出,我只是想不出要从程序。
我应该怎么做才能解决这个问题?
提前致谢。
The Foundry HIERO 的设置与 NUKE 略有不同。
HIERO 有一个 core
模块。您会在 __init__.py
文件中看到它:
import FnRedirect
import FnPythonFixes
import core
import ui
try:
if hasattr(core, "taskRegistry"):
import importers
import exporters
except ImportError as e:
pass
我运行在 Mac 上安装 HIERO 和 NUKE STUDIO,所以包内容中有 HIERO 的 __init__.py
文件的完整路径:
/Applications/Nuke10.5v5/Contents/MacOs/pythonextensions/site-packages/hiero/__init__.py
您需要使用以下方法导入此模块:
import hiero.core
或使用对 core
包的引用:
from core import *
要找到 HIERO 的当前路径,您必须 运行 在其脚本编辑器中输入以下行:
print hiero.core.pluginPath()
单击此 link 了解更多详情:Hiero's Environment Setup
所有这些说明都适用于 macOS 10.9 及更高版本。这里有两个步骤:第一个用于终端模式,第二个用于 UI 模式。
区块 1:setup for Terminal Sessions
您需要在 Home
区域手动创建 .hiero
目录。
运行ning Python 启动时推荐的默认位置是:
~/.hiero/Python/Startup
~/.hiero/Python/StartupUI
在您的 bash
终端(当您在 Home
用户目录中时)输入以下行:
mkdir .hiero/
然后:
mkdir .hiero/Python/
然后:
mkdir .hiero/Python/StartupUI/
然后导航至 Home
目录:
cd ~
并检查它:
ls -a
您还可以使用环境变量 HIERO_PLUGIN_PATH
指定任意数量的用户定义路径,就像标准 Unix PATH
环境变量一样。
为此,您需要在 .bash_profile
中设置一个 environment variable
。要在 运行 终端 PICO
编辑器中输入(请记住,sudo
命令需要管理员密码):
sudo pico .bash_profile
并将这三行粘贴到其中(将 swift
更改为 <yourName>
并保存此文件):
echo HIERO environment var is set...
export HIERO_PLUGIN_PATH=/Users/swift/.hiero/Python/StartupUI/
export PATH=$PATH:$HIERO_PLUGIN_PATH
用ctrl写出一个文件o
使用 ctrl x
退出 pico 编辑器重启终端
在终端中,您可以打印此环境变量键入:
printenv HIERO_PLUGIN_PATH
你应该在 StartupUI
目录 menu.py
中放入任何一组 xxxx.py
或 xxxx.pyc
文件,以及 __init__.py
文件。
现在您可以在 Terminal Mode
.
/Users/swift/.hiero/Python/StartupUI/
路径
区块 2:setup for UI Sessions
要指定 HIERO 在加载插件时搜索的当前路径,您需要使用以下行创建 __init__.py
文件:
import hiero.core
path='/Users/swift/.hiero/Python/Startup/'
hiero.core.addPluginPath(path)
之后在 ~/.nuke/
文件夹下创建 Python/Startup/
个子目录。
这不是错误:我输入了 .nuke
。
然后将此 __init__.py
文件放入 /Users/swift/.nuke/Python/Startup/
目录。
如果成功,请重新启动 HIERO(或 NUKE STUDIO)。
之后启动 HIERO 或 NUKE STUDIO 和 运行
print hiero.core.pluginPath()
在 HIERO 的脚本编辑器或 NUKE STUDIO 的脚本编辑器中执行命令,您将看到以下结果:
之后你会在 /Users/swift/.nuke/Python/Startup/
目录中找到新的 __init__.pyc
文件。
启动 HIERO 时发现的每个包或模块都会导入并添加到内置包 hiero.plugins
。
测试 1:custom_guides.py
我没有 HIERO 的商业版本,所以我使用 NUKE STUDIO NC 测试了 custom_guides.py
脚本(发现 here )。
我将 custom_guides.py
放在 ~/.nuke/Python/Startup
目录中,然后在 ~/.nuke
目录中的 NUKE init.py
文件中添加了两行。
import nuke
nuke.pluginAddPath("./Python/Startup")
我唯一能说的是:"it works"
做和我一样的动作,它对 HIERO 有用。
查看 safe_zone
和 masking_ratio
下拉菜单。它们是不同的:之前和之后。
上传custom_guides.py
脚本前:
上传custom_guides.py
脚本后:
# file custom_guides.py contains these lines:
viewer_masks = [
hiero.ui.guides.MaskGuide("NTSC", 0.91),
hiero.ui.guides.MaskGuide("PAL", 1.09),
hiero.ui.guides.MaskGuide("NTSC_16:9", 1.21),
hiero.ui.guides.MaskGuide("PAL_16:9", 1.46),
hiero.ui.guides.MaskGuide("Cinemascope 2:1", 2.0)
]
测试 2:web_browser.py
我将 web_browser.py
文件放在 ~/.nuke/Python/Startup
目录中。此 Python 脚本使用 PySide Qt 编写的 Web 浏览器创建可停靠面板。
我没有 HIERO 的商业版本,所以我使用 NUKE STUDIO NC 测试了 web_browser.py
脚本(找到 here )。