【发布时间】:2010-11-16 04:53:00
【问题描述】:
我正在做一个独立于平台的 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... 等... 我如何在开发过程中找到那里的数据文件?并在任意平台上安装后?
【问题讨论】:
标签: python setuptools distutils