使用setuptools在RPM中包含非python文件

我有一些包含xml文件的fixture目录,我想在使用bdist_rpm构建RPM时包含在我的python项目中.我认为我可以通过让MANIFEST.in执行递归包含* *来实现这一点,但是,除了* .py文件之外,它不包含任何其他内容.反正有没有bdist_rpm包含非python文件包或具体包括* .xml文件?

解决方法:

你想在哪里安装它们?如果你把它们放在一个包目录中,就像这样……

myproject/
  mypackage/
    __init__.py
    resources/
      file1.xml
      file2.xml

…您可以在setup.py文件中使用package_data选项,如下所示:

from setuptools import setup, find_packages

setup(
        name='myproject',
        version='0.1',
        description='A description.',
        packages=find_packages(),
        include_package_data=True,
        package_data = { '': [ '*.xml' ] },
        install_requires=[],
        )

这将递归地包含任何包内的任何* .xml文件.它们将与Python库路径中的其他部分安装在一起.您可以使用MANIFEST.in执行相同的操作,如下所示:

recursive-include * *.xml

如果您尝试将它们安装到Python库之外的特定文件系统位置,我不确定您是否可以通过setup.py来实现.

上一篇:ansible源码分析之第一遍


下一篇:Python setuptools隐藏了测试未运行的真正原因