Maya Python:IOError:[Errno 9]错误的文件描述符

时间:2017-04-26 11:52:07

标签: python maya

我为我的团队创建了一个maya python工具链。一切正常,只是在一台机器上,我似乎有问题。我把它缩小到打印命令。就像这个名为" temp.py"的测试库一样:

public class UnitTest extends ActivityInstrumentationTestCase2<TREResults> {
    TREResults trainingReinforcementResults;

    public UnitTest(Class<TREResults>activityClass) {
        super(activityClass);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        trainingReinforcementResults= getActivity();
    }
    public void testDownLoadTRESetting(){
    String userId = trainingReinforcementResults.getUS_USER_ID();
    Realm realm = 
    RealmSaveRestoreHelper.initRealm(trainingReinforcementResults);
    TRESettingsModelTest treSettings = 
    realm.where(TRESettingsModelTest.class).contains("userId", 
    userId).findFirst();`
    realm.beginTransaction();
    treSettings = realm.createObject(TRESettingsModelTest.class);
    treSettings.userId = userId;
    realm.commitTransaction();


}
    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

导入后

import os
# from pymel.core import *

print "Hello"

它产生此输出(仅在那台计算机上!):

import temp

我尝试过Maya版本 2016,2016.5和2017 。所有相同的结果。 Python 2.5 独立并没有遇到这个问题。对我来说这听起来像某种配置问题,但是它再次在3种不同的maya安装中表现相同,所以删除prefs也没有帮助。

2 个答案:

答案 0 :(得分:1)

很难知道这里到底发生了什么。但试试这个

import sys
sys.__stdout__.write("hello")
 sys.__stdout__.write(str(sys.stdout))

然后检查输出窗口(不是监听器)。在香草玛雅,你期待看到类似

的东西
<maya.Output object at 0x00000217E827FC10>

&#34;你好&#34;。如果您看到其他内容,某些脚本会尝试在此安装中劫持sys.stdout。您可以通过创建一个名为MAYA_SKIP_USERSETUP_PY的环境变量,将其设置为1并重新启动来可能解决它 - 这应该可以阻止任何脚本从自动加载中顽皮。< / p>

将其重置为您正在寻找的内容:

 import maya.utils as utils
 sys.stdout = utils.Output()

但是,您需要梳理该计算机上的脚本,并找出背后隐藏sys.stdout的人

答案 1 :(得分:-1)

错误来自您的模块,您可能会覆盖打印功能

maya 2016是python 2.7.6,maya 2017是python 3.x. 2017年你必须使用print(&#34;&#34;)