禁止使用诗歌发布到 PyPi

Disable publishing to PyPi with poetry

我正在设置 Poetry 与 Tox 的结合以自动化构建和测试。然而,我正在从事的项目是私有的,我想避免任何从事该项目的人不小心将其发布到 PyPi。我已经使用 poetry init 初始化了一个项目,我的假设是生成的设置不会产生一个可行的包,无需任何进一步的设置即可发布。这是正确的吗?

我该如何进一步配置 poetry 以便即使有人不小心运行 poetry publish 以后该包也不会实际发布。

据我所知poetry还不支持这种直接的选项。但解决方法是可能的:

[tool.poetry]
exclude = ["**"]

在 TOML 格式中:* 表示单级通配符,** 表示给定目录层次结构中的所有文件。

exclude = ["**"] 选项可防止项目文件在执行 poetry build 时进入包中。它将显示:

[ModuleOrPackageNotFound]
No file/folder found for package package_name

但是,poetry 将创建一个 tar.gz 文件并在其中包含三个文件:pyproject.tomlsetup.pyPKG-INFO。并且可以发表

另一个选项似乎是将 "Private :: Do not Upload" 添加到 pyproject.toml 中的 classifiers

[tool.poetry]
classifiers = ["Private :: Do not Upload"]

https://github.com/python-poetry/poetry/issues/3692#issuecomment-789346308