我有一个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”,或者其他什么的,这将不起作用。
__init__.py
的__path__
属性会存储__init__.py
脚本的路径。 - fucx