代码在脚本编辑器中工作,但从命令行运行时不能

时间:2017-12-15 01:08:43

标签: python maya autodesk

我试图将表达式结果传输到maya文本对象中,以用作抬头显示。我的脚本可以从脚本编辑器中运行,但不能从命令行或我的显示表达式调用。如何更改此设置以使其在命令行中正常工作?

import maya.cmds as cmds

# convert a string to hex values, separated by a space

typeNode = cmds.ls( selection=True )
type3d = cmds.listConnections(t='type')
typeValue = cmds.getAttr( 'tower_CON.Spin' )

valueList=list(str('{:3.2f}'.format(typeValue)))

hexVersion=""

for x in valueList:
    hexValue=x.encode("hex")
    hexVersion=hexVersion + hexValue + " " 

cmds.setAttr(str(type3d[0]) + ".textInput", hexVersion.rstrip(), type="string")

2 个答案:

答案 0 :(得分:1)

根据您的评论中的错误,您似乎正在尝试将该模块作为一项功能运行。

您可能需要将其保存在文件中:

import maya.cmds as cmds

def text_to_hud():
    # convert a string to hex values, separated by a space

    typeNode = cmds.ls( selection=True )
    type3d = cmds.listConnections(t='type')
    typeValue = cmds.getAttr( 'tower_CON.Spin' )

    valueList=list(str('{:3.2f}'.format(typeValue)))

    hexVersion=""

    for x in valueList:
        hexValue=x.encode("hex")
        hexVersion=hexVersion + hexValue + " " 

    cmds.setAttr(str(type3d[0]) + ".textInput", hexVersion.rstrip(), type="string")

然后在命令行中你想要

import textToolHUD as th; th.text_to_hud()

您也可以按原样保留文件,然后执行

import textToolHUD

会运行一次,但依赖导入时运行的代码是不好的做法。

答案 1 :(得分:0)

很可能你缺少依赖项。运行:

pip install maya