Nous allons mettre en place ici une technique permettant d’importer et exécuter des scripts développés dans un espace disque perso complètement indépendant de Maya.Attention toute fois, cette technique n’est pas des plus propres dans un contexte de production ! En effet, le fait d’ajouter des chemins au sys.path pourrait vite vous compliquer la vie en terme de propreté d’organisation, de stabilité et de pérennité de vos développements.Il en est de même pour le reload() que je vais utiliser ci-dessous, il ne devrait vous servir qu’uniquement dans un contexte de debug.
Structure des dossiers et fichiers
Répertoire de base: /u/touti/maya/scripts/custom
../custom
__init__.py
myTool
myTool.py
__init__.py
Avec: Dossiers & Fichiers
Important: Les fichiers __init__.py sont vides mais indispensables pour que votre répertoire soit considéré par Python comme un module.
Dans le fichier .py
Votre module est donc le fichier myTool.py.
A l’intérieur de celui-ci, nous avons (pour notre exemple):
1 2 3 4 5
# Classe à appeler class myTool_exec(object): # Fonction execute à l'appel de la classe def__init__(self): print"Yeah ça marche !"
Dans Maya
1 2 3 4 5 6 7 8 9 10 11 12 13 14
# Import de la librairie sys importsys # Définition du chemin des scripts
pathCustom ='/u/touti/maya/scripts/custom' # Si le chemin n'est pas déjà configuré ifnot pathCustom insys.path: # On l'ajoute sys.path.append(pathCustom) # Import du module et définition d'un nom d'appel import myTool.myToolas myTool # Refresh du module reload(myTool) # Exec de la classe myTool_exec()
myTool.myTool_exec()
Photographe professionnel, originaire d'Alsace (France), ancien Directeur Technique sur les films d'animation "Minions", "Moi, Moche et Méchant" et "Le Lorax".
Maya : Développer ses outils Python dans un fichier externe
Objectif
Structure des dossiers et fichiers
Répertoire de base: /u/touti/maya/scripts/custom
Avec: Dossiers & Fichiers
Important: Les fichiers __init__.py sont vides mais indispensables pour que votre répertoire soit considéré par Python comme un module.
Dans le fichier .py
A l’intérieur de celui-ci, nous avons (pour notre exemple):
2
3
4
5
class myTool_exec(object):
# Fonction execute à l'appel de la classe
def __init__(self):
print "Yeah ça marche !"
Dans Maya
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
# Définition du chemin des scripts
pathCustom = '/u/touti/maya/scripts/custom'
# Si le chemin n'est pas déjà configuré
if not pathCustom in sys.path:
# On l'ajoute
sys.path.append(pathCustom)
# Import du module et définition d'un nom d'appel
import myTool.myTool as myTool
# Refresh du module
reload(myTool)
# Exec de la classe myTool_exec()
myTool.myTool_exec()