使用 setuptools 构建 Python 源分发包时忽略 git 存储库

Ignore git repository when building a Python source-distribution package with setuptools

我正在尝试学习如何使用 setuptools 创建 Python 源代码分发包。我以为我明白包是一个包含文件 __init__.py 的目录,而该包中的模块只是该目录中的 Python 源文件。因此,简化后,我的开发目录看起来像

.
├── newFile.py
├── OldCode
│   ├── testPackage2.py
│   └── testPackage.py
├── package
│   ├── __init__.py
│   ├── module1.py
│   └── module2.py
├── README.md
├── setup.py
├── test.f90
├── testPackage.py
└── .git/

其中 package 包含我的包的模块。我的问题似乎出现了,因为我想发送 package/module1.pypackage/module1.py,但我还有一个 git 存储库,其中包含这些文件以及上面树中的其他 .py 文件(我用它来开发和测试包),甚至是 Fortran 源文件。此外,除了 setuptools.

之外,我的 (Gentoo) 系统还安装了软件包 setuptools_scm

我花了好几个小时才发现 运行 ./setup.py sdist 会简单地忽略我输入 setup.py 的任何配置(没有警告),即使我 import setuptools ,而不是 setuptools_scm。在 setuptools.setup 中,我尝试设置 packages, package_dir, py_modulesuse_scm_version=False,但其中 none 有效。有没有办法(除了通过强制卸载依赖包 setuptools_scm 来破坏我的系统)告诉 setup.py 忽略我的 git 存储库而不是它本身? (我在 Manifest.in 中尝试了 exclude *,但后来连 setup.py 都被排除了。)

我在 setup.py:

中找到了禁用 setuptools_scm 的解决方法
from setuptools_scm import integration
integration.find_files = lambda p: []

整个 setup.py 现在看起来像:

#!/bin/env python3

from setuptools import setup

from setuptools_scm import integration
integration.find_files = lambda p: []

setup(
    name='Package',
    description='A Python package',
    author='AF',
    author_email='AF@mail.org',
    url='https://hitgub.org/AF/package',

    packages=['package'],

    version='0.0.1',
    license='GPL',
    keywords=['package']
)