Tengo un módulo de Python que utiliza algunos recursos en un subdirectorio del directorio del módulo. Después de buscar en todo el desbordamiento de pila y la búsqueda de respuestas relacionadas, logré dirigir el módulo a los recursos mediante el uso de algo así como¿Cómo uso una ruta relativa en un módulo de Python cuando la CWD ha cambiado?
import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')
Esto funciona bien cuando llamo el módulo de otros lugares, pero se degrada cuando llamo el módulo después de cambiar el directorio de trabajo actual. El problema es que el contenido de __file__
son una ruta relativa, que no toma en cuenta el hecho de que he cambiado el directorio:
>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'
Cómo puedo codificar la ruta absoluta en __file__
, o la prohibición de que, cómo ¿puedo acceder a mis recursos en el módulo sin importar el directorio de trabajo actual? ¡Gracias!
Gracias, eso funciona a la perfección! También tendré presente su observación para evitar cambiar el directorio de trabajo. – jvkersch