プラットフォームに依存しない PyQt アプリケーションを実行しています。setuptools を使用して setup.py ファイルを作成するつもりです。これまでのところ、プラットフォームを特定することができました。たとえば、Windowsでpy2exeを使用するために、プラットフォームに応じてsetup()の特定のオプションをロードします...など...
ただし、私のアプリケーションでは、いくつかのテーマ、HTML、および画像を配布しています。実行時にこれらの画像をアプリケーションにロードする必要があります。これまでのところ、それらはアプリケーションの themes/ ディレクトリに保存されています。
setuptools と distutils に関するドキュメントを読んでいて、setup() に data_files オプションを指定して、themes/ ディレクトリ内のすべてのファイルを "share/MyApp/themes/" にインストールすると、次のようにインストールされることがわかりました。 /usr/ プレフィックス、またはプラットフォームにある sys.prefix は何でも。どのプラットフォームを使用していても、 os.path.join(sys.prefix, "share", "MyApp", "themes") を使用してデータファイルを見つけると思いますよね?
ただし、開発中にもデータ ファイルにアクセスできるようにしたいと考えています。データ ファイルは、アプリケーション ソースに関連する themes/ ディレクトリにあります。どうすればいいですか?アプリケーションがインストールされているかどうかを確認するスマートな方法はありますか? それとも、現時点では、データ ファイルがどこにあるかに関係なく、データ ファイルにマップするユーティリティですか?
ソースに関連するテーマがあるかどうか、または sys.prefix/share... などにあるかどうかを確認するために、あらゆる種類の醜いハックを追加するのは本当に嫌いです...開発中にデータファイルを見つけるにはどうすればよいですか? そして任意のプラットフォームにインストールした後?