我有一些包含 xml 文件的夹具目录,我希望在使用bdist_rpm
. 我认为我可以通过让 MANIFEST.in 执行此操作recursive-include * *
,但是,它不包含除 *.py 文件之外的任何内容。无论如何让 bdist_rpm 在包中包含非 python 文件或特别包含 *.xml 文件?
问问题
1819 次
2 回答
3
你想在哪里安装它们?如果你把它们放在一个包目录中,像这样......
myproject/
mypackage/
__init__.py
resources/
file1.xml
file2.xml
...您可以package_data
在文件中使用该选项setup.py
,如下所示:
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 库路径内的某个位置。您可以使用如下所示的 a 执行相同的操作MANIFEST.in
:
recursive-include * *.xml
如果您尝试将它们安装到 Python 库之外的特定文件系统位置,我不确定您是否可以通过setup.py
.
于 2012-05-02T01:33:44.900 回答
3
您可以使用data_files
设置参数来做您需要的事情。像这样的东西:
setup(
...
package_data = { '/usr/share/yourapp/xmls': [ 'xmls/1.xml', 'xmls/2.xml' ] },
...
)
这将安装以下文件:
/usr/share/yourapp/xmls/1.xml
/usr/share/yourapp/xmls/2.xml
我通常在这样的函数中创建文件列表:
def get_xmls():
xmlfiles = []
for filename in os.listdir('xmls/'):
if filename.endswith('.xml'):
xmlfiles.append('xmls/%s' % filename)
return xmlfiles
于 2012-05-09T16:22:35.517 回答