我为我的团队创建了一个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也没有帮助。
答案 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;)