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

问题描述 投票:0回答:1

我正在尝试学习如何使用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 repo,包含那些文件以及上面树中的其他.py文件(我用它来开发和测试包),以及甚至是Fortran源文件。另外,我的(Gentoo)系统除setuptools_scm外还安装了setuptools软件包。

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

python git setuptools
1个回答
1
投票

我找到了一个解决方法来禁用setuptools_scm中的setup.py

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='[email protected]',
    url='https://hitgub.org/AF/package',

    packages=['package'],

    version='0.0.1',
    license='GPL',
    keywords=['package']
)
© www.soinside.com 2019 - 2024. All rights reserved.