0
votes

Importation de scripts python externes du disque en maya

im essayant de configurer une interface pour appeler la version actuelle des scripts dans un certain dossier.

im ajoute mon dossier de script personnel et essayez de l'importer comme indiqué comme indiqué. Chaque fois que j'appuie sur le bouton, le message d'erreur suivant apparaît:

Erreur: NameError: Ligne de fichier 1: Nom 'SetVars' n'est pas défini

J'ai essayé de nombreuses techniques d'importation possibles. Mais les erreurs continuent de faire apparaître.

Je vais joindre le script d'interface et l'un des scripts à appeler à appeler.

interface: xxx

exemple de script à appeler: xxx

merci pour votre aide!


0 commentaires

3 Réponses :


0
votes

sans essayer ... Je suppose que la raison est que vous utilisez la chaîne "setvars ()" comme nom de commande. Si vous l'appelez à partir de votre module principal, il n'y a pas de SetVars (), mais une fonction AA appelée WhateToutourModuelNameis.setvars ().

Vous pouvez soit essayer d'importer tout comme ceci: p>

mc.button(label = "OK", command = setVars, bgc = (0.2, 0.92, 0.75))


1 commentaires

Merci pour votre réponse! J'ai donc déjà essayé votre première suggestion. Et cela fonctionne, chaque fois que je l'exécute comme une commande de ligne unique. Mais cela ne fonctionne pas dans la définition, cela a appelé lorsque vous appuyez sur le bouton OK. Cela produise l'erreur commune. Changer tristement les chaînes n'a aucun effet.



0
votes

D'accord, je l'ai essayé maintenant et il y a quelques problèmes. Je suppose que vous avez exécuté votre script principal directement de Maya? Parce que si je le mettit dans un module et chargez-le, je reçois une erreur similaire que "Fermer ()" est introuvable ainsi que "Callfuncunc ()" introuvable. Les deux ont la même raison qui peut facilement être résolue en n'utilisant pas de chaînes.

Dans votre script principal, vous pouvez remplacer le "Fermer ()" dans la commande de bouton avec la même procédure que mentionnée ci-dessus: P>

from functools import partial
for value in FolderContent:
    mc.button(label = value, command = partial(callFunc, value), bgc = (0.25, 0.25, 0.25)) 


0 commentaires

0
votes

Désolé pour les types de retard, mais je suis heureux de signaler que cela fonctionne maintenant! Éteignez le problème, que je n'ai pas importé les scripts avant d'exécuter l'interface utilisateur.

C'est donc l'interface utilisateur dynamique à ce point: xxx

en faisant cela avant d'appeler l'interface utilisateur, ce n'est même pas un problème d'utiliser des chaînes dans les srips respectifs: xxx

Je pense que c'est un peu rugueux encore.

Je suis juste En commençant à faire des choses comme ça (comme 4 semaines peut-être), les améliorations sont donc très appréciées.

Merci beaucoup pour la grande aide! Bravo.


0 commentaires