Blender (jusqu'à 2.49)
Relations de l'API python 
avec 
l'arborescence de répertoires 


    Début   Index
précédentScript :dédoubler un mesh
Localiser quelques scripts interessants: Suivant

Le chemin du répertoire courant

"Est-il possible de savoir dans quel répertoire se trouve le fichier python  qui est en cours  d'exécution", 

ce n'est pas spécialement dur dans la mesure où  le script est lancé dans Blender. Ce répertoire  est tout simplement celui où se trouve le fichier Blender courant. 

Mais contrairement au python  original, le python embarqué ne sait rien de  l'environnement système dans lequel il évolue.  Le logiciel fait "écran". Tout ce que l'on peut  savoir c'est où se trouve  le fichier blender.exe. Pour comprendre ce qui se  passe on peut utiliser le module:

sys

et un script très simple:
 
import sys
print sys.path
p=raw_input(sys.path[0])

On sauvegarde ce script avec le nom "repererepcourant.py" dans le répertoire "c:\tmp". Si on l'exécute à partir du système en cliquant dessus, par exemple, le  prompt (ce qui se trouve en début de ligne, juste avant le  curseur dans la console dos) indiquera:

"c:\tmp".

sys.path[0] contient le répertoire dans lequel est exécuté le script.

Alors que dans Blender ce sera ... en fait, je ne pourrais pas l'énoncer de mémoire et comme mon système lui contient tout un tas de paramètres qui correspondent aux chemins de  recherche que j'ai indiqué dans la variable PYTHONPATH. il m'est difficile de faire un test pour contrôler ce qui se trouvera réellement dans cette liste lorsqu'elle sera renvoyée par un système non préparé. En aucun cas le répertoire du fichier Blender qui contient le script. 

Constantes "système" : filename, dirname

Cette situation pourrait être ennuyeuse si on ne trouvait dans le Blender/python des constantes qui conservent les infos que l'on ne peut pas obtenir par la voie normale. L'adresse du répertoire, sera dont récupérée en utilisant la fonction: 
 
Blender.Get('filename')

qui fournit le nom complet, répertoire compris, du  fichier blender  et la fonction:
 
Blender.sys.dirname

pour en extraire l'information intéressante: 
 
import Blender
ls=Blender.Get('filename')
rep=Blender.sys.dirname(ls)
print rep

Sur un sujet assez proche voir la page: cohabr2pyt.htm

Constantes "système" (2) : 
Répertoire de stockage par défaut des scripts python

# 'scriptsdir': le chemin vers  le principal répertoire  où sont rangés les scripst  ( le retour peut être None si ce répertroire a été effacé ou s'il n'est pas trouvé ) :
 
Blender.Get('scriptsdir')

# 'datadir' : le chemin vers  le répertoire  où les script sdevraient normalement ranger et retrouver leur fichiers de données (utilisé par povanim par exemple), y compris la sauvegrade des configurations  (comme pour le précédent le retour peut-être None , Rien) :
 
Blender.Get('datadir')

# 'uscriptsdir': le chemin vers  le répertoire défini par l'utilisateur pour les scripts , voir la page configuration :  User Preferences window i (comme pour les précédents le retour peut-être None , Rien):
 
Blender.Get('usscriptdir'')

Constantes "système" (3) :
Répertoire du programme executablel Blender 

A ne pas confondre avec le script d'appel, sous windows ce serait le fichier blender.exe .

# 'homedir'
 
Blender.Get('homedir'')
Cette information peut être très pratiques pour identifer le disque de lancement sous windows. On peut aussi l'obtenir par fonction propre du  python  :   
sys.executable
import nt
os=nt
os.sep='\\'
#--------------------------------
# Pour reperer les adresses des images uvmappees
# dans le disque d'origine de blender car... 
#--------------------------------
n=1
ok=1
exepath=sys.executable
disque=exepath[0]
print disque,'....'
 
précédentScript Python
 Localiser quelques scripts interessants: Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://www.zoo-logique.org/3D.Blender


 
 

 

Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube