为 Distutils 清单模板使用 MANIFEST.in 以外的名称
Use a name other than MANIFEST.in for Distutils manifest template
在 Python documentation for distribution 中,声明清单模板被 默认 命名为 MANIFEST.in
。然后它似乎没有说明如何更改该默认值。
为了混合语言项目,我想命名 MANIFEST.in
更像 PYTHON-MANIFEST.in
或类似的东西,以避免需要知道什么属于的开发人员的精神负担什么语言(我们不能只将 Python 子项目放入子目录,因为它需要访问根目录下的伞式项目项)。
这可能吗?如果是,怎么做?
Distutils sdist
命令的命令行帮助有答案:
$ python3 ./setup.py sdist --help
[…]
Options for 'sdist' command:
--template (-t) name of manifest template file [default: MANIFEST.in]
[…]
因此您可以将“manifest template”文件命名为任何您喜欢的名称,然后 使用 template
选项指定模板文件名 for sdist
.
我在Distutils文档中找不到答案,确实需要一些专门的改进和维护。
上面的答案让我有机会查看并找到以编程方式执行此操作的方法。
使用 setuptools
时,可以简单地重新分配用于查找清单模板的变量:
setuptools.command.egg_info.manifest_maker.template = 'your-manifest-template-here.in'
我想通过从 distutils.command.sdist.sdist
派生并更改 self.template
在覆盖的 finalize_options
中分配给的内容,纯 distutils
可能会发生类似的事情(并且此外,当然,将其指定为您的自定义 sdist
命令)。
在 Python documentation for distribution 中,声明清单模板被 默认 命名为 MANIFEST.in
。然后它似乎没有说明如何更改该默认值。
为了混合语言项目,我想命名 MANIFEST.in
更像 PYTHON-MANIFEST.in
或类似的东西,以避免需要知道什么属于的开发人员的精神负担什么语言(我们不能只将 Python 子项目放入子目录,因为它需要访问根目录下的伞式项目项)。
这可能吗?如果是,怎么做?
Distutils sdist
命令的命令行帮助有答案:
$ python3 ./setup.py sdist --help
[…]
Options for 'sdist' command:
--template (-t) name of manifest template file [default: MANIFEST.in]
[…]
因此您可以将“manifest template”文件命名为任何您喜欢的名称,然后 使用 template
选项指定模板文件名 for sdist
.
我在Distutils文档中找不到答案,确实需要一些专门的改进和维护。
上面的答案让我有机会查看并找到以编程方式执行此操作的方法。
使用 setuptools
时,可以简单地重新分配用于查找清单模板的变量:
setuptools.command.egg_info.manifest_maker.template = 'your-manifest-template-here.in'
我想通过从 distutils.command.sdist.sdist
派生并更改 self.template
在覆盖的 finalize_options
中分配给的内容,纯 distutils
可能会发生类似的事情(并且此外,当然,将其指定为您的自定义 sdist
命令)。