I have a Python app. It loads config files (and various other files) by doing stuff such as:
_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
CONFIG_DIR = os.path.join(_path, 'conf')
This works fine. However, when I package the app with py2exe, bad things happen:
File "proj\config.pyc", line 8, in <module>
WindowsError: [Error 3] The system cannot find the path specified: 'C:\\proj\
\dist\\library.zip\\conf'
Obviously that's an invalid path... What's a more robust way of doing this? I don't want to specify absolute paths in the program because it could be placed in different folders. Should I just say "if it says the folder name is 'library.zip', then go one more level down to the 'dist' folder"?
Note that I have pretty nested directory hierarchies... for example, I have a module gui.utils.images, stored in "gui/utils/images.py", and it uses its path to access "gui/images/ok.png", for example. Right now the py2exe version would try to access "proj/dist/library.zip/gui/images/ok.png", or something, which just won't work.