获取包中的文件路径?

时间:2016-09-08 09:30:23

标签: python import module

我有一个Python包,其组织如下:

package
|- subpackage
|  |- code.py
|  |- window.ui
| ...

code.py我希望通过

访问文件window.ui
PyQt4.uic.loadUi('window.ui', self)

如果我只使用code.py作为工作目录运行subpackage,这很有效。但是如果我从另一个工作目录导入包,则找不到该文件:

IOError: [Errno 2] No such file or directory: 'window.ui'

我的问题:如何获取文件code.py所在目录的路径名,以便创建window.ui的绝对路径名。或者,我如何才能最有效地访问文件window.ui

我从here尝试了os.path.abspath('.'),但它只返回当前工作目录的绝对路径。

1 个答案:

答案 0 :(得分:3)

使用文件的绝对路径而不是相对路径。

abspath = os.path.join(os.path.dirname(os.path.realpath(__file__)), "window.ui")

PyQt4.uic.loadUi(abspath, self)