私は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」であると表示されている場合は、もう1つ下の「dist」フォルダに移動します」とだけ言う必要がありますか?
かなりネストされたディレクトリ階層があることに注意してください...たとえば、「gui / utils / images.py」に保存されているモジュールgui.utils.imagesがあり、そのパスを使用して「gui / images/ok」にアクセスします。たとえば、png」。現在、py2exeバージョンは「proj / dist / library.zip / gui / images / ok.png」などにアクセスしようとしますが、これは機能しません。