我在setup.py中具有以下内容:
from setuptools import setup
# ...
setup(
name='xml-boiler',
version='0.0.1',
url='https://github.com/vporton/xml-boiler',
license='AGPLv3',
author='Victor Porton',
author_email='porton@narod.ru',
description='Automatically transform between XML namespaces',
packages=find_packages(),
package_data={'': ['*.ttl', '*.xml']},
scripts=['bin/boiler'],
data_files = [
('/etc/xmlboiler', ['etc/config-cli.ttl'])
],
test_suite="xmlboiler.tests",
cmdclass={'build_py': MyBuild},
)
但是在运行python setup.py build
之后,构建目录不包含任何*.xml
或*.ttl
文件。
我的错误是什么?
我还想分发xmlboiler/core/data/assets/
和
xmlboiler/core/data/assets/
。
我不知道它是如何工作的:
package_data={'': ['*/.xml', '*/.ttl', '*/.net', 'data/assets/*', 'data/scripts/*.xslt', 'xmlboiler/doc/*.html', 'xmlboiler/doc/*.css']},
包括xmlboiler/core/data/scripts/section.xslt
但不包括xmlboiler/tests/core/data/xml/simple.xml
。为什么?!
答案 0 :(得分:1)
<if condition='isNull("logs.dir")'>
<then>
<!-- in-IDE appenders -->
</then>
<else>
<!-- standard appenders -->
</else>
</if>
是程序包名称到文件或文件glob的映射。这意味着
package_data
将包含位于任何软件包目录中的所有以package_data = {'', ['*.xml', '*.ttl']}
或.xml
结尾的文件,例如.ttl
,xmlboiler/file.xml
等。但是,它将不包含文件{ {1}},因为它位于不是软件包目录的xmlboiler/core/file.ttl
中(不包含xmlboiler/core/data/interpreters.ttl
文件)。为此,您应该使用正确的文件路径:
data
要在__init__.py
下包含每个package_data = {'xmlboiler.core', ['data/interpreters.ttl']}
文件:
.ttl
这将包括xmlboiler/core/data
目录中的每个package_data = {'xmlboiler.core', ['data/*.ttl', 'data/**/*.ttl']}
文件(全局.ttl
)和data
每个子目录中的每个data/*.ttl
文件(全局{{1 }}。
要在每个软件包中包含每个.ttl
和data
文件:
data/**/*.ttl
我还想分发
中的所有文件.ttl
与.xml
相同,但是省略了glob中的文件扩展名:
package_data = {'', ['*.xml', '**/*.xml', '*.ttl', '**/*.ttl']}