禁止使用诗歌发布到 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.toml
、setup.py
和 PKG-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
我正在设置 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.toml
、setup.py
和 PKG-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