禁止将诗歌发布到 PyPi

Dis*_*dSC 6 python python-poetry

我正在将 Poetry 与 Tox 结合起来以自动化构建和测试。然而,我正在从事的项目是私有的,我希望避免任何从事该项目的人意外地将其发布到 PyPi。我已经使用初始化了一个项目poetry init,我的假设是最终的设置不会产生一个可以在没有任何进一步设置的情况下发布的可行包。它是否正确?

我如何进一步配置诗歌,以便即使poetry publish将来有人意外运行该包也不会真正发布。

use*_*538 11

另一个选择似乎是添加"Private :: Do not Upload"classifiersin 中pyproject.toml

[tool.poetry]
classifiers = ["Private :: Do not Upload"]
Run Code Online (Sandbox Code Playgroud)

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


ale*_*ame 5

据我所知,poetry尚不支持这种简单的选项。但解决方法是可能的:

[tool.poetry]
exclude = ["**"]
Run Code Online (Sandbox Code Playgroud)

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

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

[ModuleOrPackageNotFound]
No file/folder found for package package_name
Run Code Online (Sandbox Code Playgroud)

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