Das Folgende ist eine Geschichte, die nur für eine bestimmte Maya-Version von Windows relevant ist. Ich habe es noch nie auf einem Mac oder einer neueren Version von Maya gesehen.
Wenn Sie auf das mysteriöse Phänomen stoßen, dass der Druckbefehl selbst einen Fehler wie oben beschrieben verursacht, stellen Sie sicher, dass MAYA_NO_CONSOLE_WINDOW nicht in der Systemumgebungsvariablen festgelegt ist.
Dies ist eine Umgebungsvariable, die Sie festlegen, um das Konsolenfenster auszublenden. https://support.borndigital.co.jp/hc/ja/articles/360002474194-Maya-%E3%81%AE-Output-Window-%E3%82%92%E9%9D%9E%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%99%E3%82%8B
Wenn MAYA_NO_CONSOLE_WINDOW festgelegt ist, wird die Druckanweisung in einigen Umgebungen wie Maya 2017 Update 5 nicht übergeben (obwohl die genaue Zielversion unbekannt ist). Soweit ich es versucht habe, hat es nicht funktioniert, auch wenn der eingestellte Wert 0 statt 1 war.
Die Situation, in der der Druck nicht bestanden wird, ist wie in einer Situation, in der die Standardeinstellung falsch ist und die Zuordnung verloren geht, wenn das Konsolenfenster nicht angezeigt wird.
Derzeit können Sie das Problem beheben, indem Sie den folgenden Code ausführen. Es scheint jedoch besser, die Definition MAYA_NO_CONSOLE_WINDOW zu entfernen, da möglicherweise etwas anderes nicht stimmt.
# https://stackoverflow.com/questions/43633433/maya-python-ioerror-errno-9-bad-file-descriptor
import maya.utils as utils
sys.stdout = utils.Output()
Es ist unangenehm, dass Probleme nur in einer bestimmten Umgebung auftreten.