Как мне использовать относительный путь в модуле Python при изменении CWD?

У меня есть модуль Python, который использует некоторые ресурсы в подкаталоге каталога модуля. После поиска по переполнению стека и поиска связанных ответов мне удалось направить модуль к ресурсам, используя что-то вроде

import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')

. Это отлично работает, когда я вызываю модуль из другого места, но он ломается, когда я вызываю модуль после изменения текущего рабочий каталог. Проблема в том, что содержимое __ file __ является относительным путем, а не t принять во внимание тот факт, что я изменил каталог:

>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'

Как я могу закодировать абсолютный путь в __ file __ , или запретив это, как я могу получить доступ к своим ресурсам в модуле независимо от того, какой текущий рабочий каталог есть? Спасибо!

29
задан Machavity 15 September 2019 в 12:59
поделиться