我有一个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('.')
,但它只返回当前工作目录的绝对路径。
答案 0 :(得分:3)
使用文件的绝对路径而不是相对路径。
abspath = os.path.join(os.path.dirname(os.path.realpath(__file__)), "window.ui")
PyQt4.uic.loadUi(abspath, self)