Python 模块:在设置期间使用但未安装

Python module: use during setup but not to be installed

我如何向 Setuptools 指定一个模块在安装期间应该可用,但在 运行 时间内没有安装?

我已经为我的 Python 发行版创建了一个扩展命令(在本例中它会自动生成版本元数据),并且该模块包含在项目树中。

foo-project/
    setup.py
    MANIFEST.in
    foo/
        __init__.py
        bar.py
    version_info.py

对于运行 Setuptools 命令(例如egg_infodevelop),version_info 模块由setup 导入。因此该文件 version_info.py 需要成为源代码分发的一部分。

但是将该文件放入源代码分发版中(默认情况下?)也会自动将其包含在任何二进制分发版中,例如 bdist_wheelbdist_dumb。这是错误的,因为在 运行 时不需要该文件,因此不应安装。

如何指定该文件是安装命令的源代码分发中需要的 Python 模块,但不被安装?

您可以在 MANIFEST.in file 中包含 源分发文件 ;在构建包含 setup.py 文件的源代码分发时包含这些文件。

不要将文件包含在 data_filespackage_datapy_modules 中,它不会包含在二进制分发中(就像 setup.py 不会是)。