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:
qui fournit le nom complet,
répertoire compris, du fichier blender et la fonction:
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) :
# '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'
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,'....' |
|