我正在做一个独立于平台的 PyQt 应用程序。我打算使用 setuptools 编写 setup.py 文件。到目前为止,我已经设法解除平台技术,例如根据平台加载 setup() 的特定选项,以便在 Windows 上使用 py2exe ......等等......
但是,对于我的应用程序,我分发了一些主题、HTML 和图像,我需要在运行时将这些图像加载到应用程序中。到目前为止,它们都存储在应用程序的主题/目录中。
我一直在阅读有关 setuptools 和 distutils 的文档,并发现如果我为 setup() 提供了 data_files 选项以及要安装在“share/MyApp/themes/”中的主题/目录中的所有文件,它将被安装/usr/ 前缀,或平台上的任何 sys.prefix。我假设无论我在哪个平台上,我都会使用 os.path.join(sys.prefix, "share", "MyApp", "themes") 找到数据文件,对吧?
但是,我也希望能够在开发过程中访问数据文件,它们位于相对于应用程序源的主题/目录中。我该怎么做呢?是否有一些聪明的方法来确定应用程序是否已安装?或者是一个映射到数据文件的实用程序,无论它们现在在哪里?
我真的很讨厌添加各种丑陋的黑客来查看是否有与源相关的主题,或者在 sys.prefix/share... 等... 我如何在开发过程中找到数据文件?并在任意平台上安装后?