如何向 Setuptools 指定模块在安装过程中应该可用,但不在运行时安装?
我已经制作了一个由我的 Python 发行版使用的扩展命令(在这种情况下,它会自动生成版本元数据),并且该模块包含在项目树中。
foo-project/
setup.py
MANIFEST.in
foo/
__init__.py
bar.py
version_info.py
要运行 Setuptools 命令(如 egg_info
或 develop
),version_info
模块由 setup
导入。因此,该文件version_info.py
需要成为源代码分发的一部分。
但是将该文件放在源代码发行版中也会(默认情况下?)自动将其包含在任何二进制发行版中,例如 bdist_wheel
或 bdist_dumb
。这是错误的,因为该文件在运行时不需要,也不应该安装。
如何指定该文件是安装命令的源代码分发中需要但未安装的 Python 模块?
您可以在MANIFEST.in
文件中包括源分发文件;在构建包含setup.py
文件的源分发时,将包括这些文件。
不要将文件包含在data_files
或package_data
或py_modules
中,也不会包含在二进制分发中(就像setup.py