【问题标题】:How to make Error 'Variable' is not defined work?如何使错误“变量”未定义工作?
【发布时间】:2020-02-19 13:59:28
【问题描述】:

通过一个按钮(它本身由另一个 python 脚本调用),我尝试运行一个名为 Python_Chara 的脚本。 当我直接启动它时,它可以工作。但是通过我的按钮我有错误:

'Chara' is not define...

这是代码:

cmds.nodeIconButton(style='iconOnly', c="Chara()")
def Chara():
    import Python_Chara
    reload (Python_Chara)

有什么想法吗?我尝试了不同的方法,但没有任何效果......

【问题讨论】:

  • 你必须在使用按钮之前定义函数Chara()。所以也许你只需要把它放在不同的顺序。
  • 另外,第一次调用函数时,脚本会运行两次
  • 我尝试了不同的顺序,但它不起作用..

标签: python function import reload maya


【解决方案1】:

在你的 Chara 文件中,你应该将你想要做的事情封装在一个 def 中,所以在你的 Python_Chara.py 中:

def doIt(*args):
    print('doing something I will want to do in my ui')

在你的其他脚本中,你这样做:

import Python_Chara
cmds.nodeIconButton(style='iconOnly', c=Python_Chara.doIt)

【讨论】:

  • 感谢 DrWeeny 的回复!不幸的是,它不起作用。 # AttributeError: 'module' object has no attribute 'doIt' # 但是你的解决方案听起来是正确的。我只是在你的例子中没有为 (*args) 放一些东西。我就像:def doIt(*args): cmds.matchTransform() 关于其余的,一切都相似......
  • 在 Python_Chara 中添加 doIt def 后是否重新加载?
  • 我做了是的,但没有成功......从昨天开始,我想知道这是否不是因为我的按钮是从其他脚本调用的。一个脚本调用这个按钮>这个按钮调用>Python_Chara
  • 你能给我们一个你的两个文件的例子吗?所以我们可以看到你的错误在哪里?
  • import maya.cmds as cmds import sys sys.path.append("Y:/000_Scripts") import Python_winButton reload (Python_winButton) #这是第一个脚本
【解决方案2】:

enter image description here

这是我的代码。第二个是具有相同问题的不同按钮的窗口

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 2015-01-25
    • 2018-05-03
    • 2014-04-25
    • 2021-04-10
    • 2011-12-21
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多