我有一个Python模块,它使用模块目录的子目录中的一些资源.在搜索堆栈溢出并找到相关答案后,我设法通过使用类似的东西将模块引导到资源
import os
os.path.join(os.path.dirname(__file__), 'fonts/myfont.ttf')
Run Code Online (Sandbox Code Playgroud)
当我从其他地方调用模块时这很好用,但是当我在更改当前工作目录后调用模块时,它会中断.问题是内容__file__是一个相对路径,没有考虑到我更改目录的事实:
>>> mymodule.__file__
'mymodule/__init__.pyc'
>>> os.chdir('..')
>>> mymodule.__file__
'mymodule/__init__.pyc'
Run Code Online (Sandbox Code Playgroud)
如何__file__编写绝对路径,或者禁止如何访问模块中的资源,无论当前工作目录是什么?谢谢!