我为我的团队创建了maya工具链。一切正常,就在一台机器上,我似乎有问题。我把范围缩小到打印命令。就像这个名为“temp.py”的测试库:
import os
# from pymel.core import *
print "Hello"在导入之后
import temp它产生这个输出(只在那台计算机上!):
// Error: 9
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# File "C:\maya_scripts\temp.py", line 4, in <module>
# print "Hello"
# IOError: [Errno 9] Bad file descriptor //我试过玛雅版本的2016,2016.5和2017年的。结果都一样。作为独立的Python2.5没有遇到这个问题。对我来说,这听起来像是某种配置问题,但是在3种不同的maya安装中,它的行为也是一样的,所以删除prefs也没有帮助。
发布于 2017-04-27 18:37:26
很难知道这里到底发生了什么。但试试这个
import sys
sys.__stdout__.write("hello")
sys.__stdout__.write(str(sys.stdout))然后检查输出窗口(而不是监听器)。在香草玛雅,你会看到这样的东西
<maya.Output object at 0x00000217E827FC10>在“你好”之后。如果您看到其他的东西,一些脚本已经尝试劫持sys.stdout在这个安装。您可能可以通过创建一个名为MAYA_SKIP_USERSETUP_PY的环境变量,将其设置为1,然后重新启动来解决这个问题--这应该可以阻止任何脚本不正常的自动加载。
这应该把它重置为你要找的东西:
import maya.utils as utils
sys.stdout = utils.Output()然而,你需要梳理一下机器上的脚本,找出是谁在背后捣乱sys.stdout。
发布于 2017-04-26 13:59:03
错误来自您的模块,您可以覆盖打印函数。
maya 2016是python 2.7.6,maya 2017是python 3.x,2017年你必须使用print("")
https://stackoverflow.com/questions/43633433
复制相似问题