我有一个 Python 应用程序。它通过执行以下操作加载配置文件(和各种其他文件):
_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
CONFIG_DIR = os.path.join(_path, 'conf')
这工作正常。但是,当我用 py2exe 打包应用程序时,会发生不好的事情:
File "proj\config.pyc", line 8, in <module>
WindowsError: [Error 3] The system cannot find the path specified: 'C:\\proj\
\dist\\library.zip\\conf'
显然,这是一条无效的路径......有什么更强大的方法来做到这一点?我不想在程序中指定绝对路径,因为它可以放在不同的文件夹中。我应该说“如果它说文件夹名称是'library.zip',那么再往下走一层到'dist'文件夹”?
请注意,我有非常嵌套的目录层次结构......例如,我有一个模块 gui.utils.images,存储在“gui/utils/images.py”中,它使用它的路径来访问“gui/images/ok. png”,例如。现在 py2exe 版本会尝试访问“proj/dist/library.zip/gui/images/ok.png”或其他东西,但这是行不通的。