J'ai un module Python qui utilise certaines ressources dans un sous-répertoire du répertoire du module. Après la recherche autour de débordement de pile et de trouver des réponses connexes, j'ai réussi à diriger le module des ressources en utilisant quelque chose commeComment utiliser un chemin relatif dans un module Python lorsque le CWD a changé?
import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')
Cela fonctionne bien quand je l'appelle le module d'ailleurs, mais il me brise quand je l'appelle le module après avoir changé le répertoire de travail actuel. Le problème est que le contenu de __file__
sont un chemin relatif, qui ne tient pas compte du fait que je l'ai changé le répertoire:
>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'
Comment puis-je encoder le chemin absolu dans __file__
, ou à défaut, comment puis-je accéder à mes ressources dans le module, quel que soit le répertoire de travail actuel? Merci!
Merci, cela fonctionne parfaitement! Je garderai également votre remarque en tête pour éviter de changer le répertoire de travail. – jvkersch