使用 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.py
和 package/module1.py
,但我还有一个 git 存储库,其中包含这些文件以及上面树中的其他 .py 文件(我用它来开发和测试包),甚至是 Fortran 源文件。此外,除了 setuptools
.
之外,我的 (Gentoo) 系统还安装了软件包 setuptools_scm
我花了好几个小时才发现 运行 ./setup.py sdist
会简单地忽略我输入 setup.py
的任何配置(没有警告),即使我 import setuptools
,而不是 setuptools_scm
。在 setuptools.setup
中,我尝试设置 packages, package_dir, py_modules
和 use_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']
)
我正在尝试学习如何使用 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.py
和 package/module1.py
,但我还有一个 git 存储库,其中包含这些文件以及上面树中的其他 .py 文件(我用它来开发和测试包),甚至是 Fortran 源文件。此外,除了 setuptools
.
setuptools_scm
我花了好几个小时才发现 运行 ./setup.py sdist
会简单地忽略我输入 setup.py
的任何配置(没有警告),即使我 import setuptools
,而不是 setuptools_scm
。在 setuptools.setup
中,我尝试设置 packages, package_dir, py_modules
和 use_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']
)