强制`sdist`即使在Linux上也可以创建.zip存档

ana*_*nik 5 python distutils sdist

我知道可以强制sdist从命令行生成.zip:

python setup.py sdist --formats=zip
Run Code Online (Sandbox Code Playgroud)

但是如何让这个选项成为我的默认选项setup.py呢?

我想获得setup.py sdist在Windows和Linux上运行的一致性,我选择.zip格式,因为我可以将.zip变成可执行文件.

ana*_*nik 5

我自己从 distutils 文档(此处此处)以及distutils 来源中找到了它:

# Override sdist to always produce .zip archive
from distutils.command.sdist import sdist as _sdist
class sdistzip(_sdist):
    def initialize_options(self):
        _sdist.initialize_options(self)
        self.formats = 'zip'

setup(
    ...
    cmdclass={'sdist': sdistzip},
)
Run Code Online (Sandbox Code Playgroud)