【发布时间】:2019-09-16 22:10:34
【问题描述】:
我正在尝试学习如何使用 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 源文件。另外,我的(Gentoo)系统除了setuptools外还安装了包setuptools_scm。
我花了好几个小时才发现运行./setup.py sdist 会忽略我在setup.py 中输入的任何配置(没有警告),即使我是import setuptools,而不是setuptools_scm。在setuptools.setup 中,我尝试设置packages, package_dir, py_modules 和use_scm_version=False,但这些都不起作用。有没有办法(除了通过强制卸载依赖包setuptools_scm 来破坏我的系统)告诉setup.py 忽略我的git 存储库而不是它本身? (我在Manifest.in 中尝试了exclude *,但后来甚至排除了setup.py。)
【问题讨论】:
-
我们能看到minimal reproducible example吗?只是一个小的存储库,我们可以使用或不使用
setuptools_scm进行克隆和测试... -
@phd 感谢您的关心 - 这是我的example repo。一种解决方法是告诉
setup.py临时重命名.git/- 请评论该行输入/输出。只有package/module[12].py应该包含在 dist 文件中。
标签: python git setuptools