Ce qui suit est une histoire qui n'est pertinente que pour une version Maya particulière de Windows. Je ne l'ai jamais rencontré sur un Mac ou une version récente de Maya.
Si vous rencontrez le phénomène mystérieux selon lequel la commande d'impression elle-même provoque une erreur comme décrit ci-dessus, assurez-vous que MAYA_NO_CONSOLE_WINDOW n'est pas défini dans la variable d'environnement système.
Il s'agit d'une variable d'environnement que vous définissez pour masquer la fenêtre de la console. 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
Si MAYA_NO_CONSOLE_WINDOW est défini, l'instruction d'impression ne passera pas dans certains environnements tels que Maya 2017 Update 5 (bien que la version cible exacte soit inconnue). Dans la mesure où j'ai essayé, cela ne fonctionnait pas même si la valeur définie était 0 au lieu de 1.
La situation dans laquelle l'impression ne passe pas est comme lorsque le paramètre stdout est incorrect et l'allocation sera perdue en n'affichant pas la fenêtre de la console.
Pour le moment, vous pouvez le corriger en exécutant le code ci-dessous, mais il semble préférable de supprimer la définition MAYA_NO_CONSOLE_WINDOW car quelque chose d'autre peut être erroné.
# https://stackoverflow.com/questions/43633433/maya-python-ioerror-errno-9-bad-file-descriptor
import maya.utils as utils
sys.stdout = utils.Output()
Il est désagréable que les problèmes surviennent uniquement dans un environnement spécifique.
Recommended Posts