gpt4 book ai didi

python - setuptools的 "Programming Language"分类器中版本的目的是什么?

转载 作者:行者123 更新时间:2023-12-03 16:51:10 25 4
gpt4 key购买 nike

假设 Python 应用程序依赖于一个模块,并且该模块在 setup.py 的分类元数据中仅声明了“Programming Language::Python::3.5”,那么该应用程序是否可以声明不同版本的 Python 解释器(例如,“Programming Language::Python::3.7"在它自己的 setup.py 中?

我在打包我自己的 Python3 应用程序时意识到了这个问题,我希望为此支持所有最近的 Python3 版本。该应用程序依赖于 wcwidth 模块 ( https://pypi.org/project/wcwidth/ )。 Wcwidth 模块在其编程语言支持中仅列出了“Python::3.4”和“Python::3.5”。所以我想知道如果我在使用 Python3.7 解释器时运行“pip install”会怎样?我虽然它会失败,但事实证明安装工作正常,因为 pip 下载了 wcwidth 源并在我的机器上编译了它。

所以看起来 pip 在安装包时根本没有真正检查分类器?

最佳答案

Trove 分类器是作者为用户编写的元数据,而不是为 pip 等工具编写的元数据。 .您可以从中获得一些有用的信息,尤其是通过额外的研究。

例如,如果一个项目声明与 Python 2.4 兼容,您可以确定它永远不会支持 Python 3。

如果一个项目声明与 Python 3.4 和 3.5 但不是 3.7 兼容,您可以预期代码将与 3.7 兼容,但仍有可能不兼容。

你也应该调查一下。如果项目很长一段时间没有更新,你应该开始担心项目不再维护,你最好开始寻找更现代的替代品。

在您的问题中,该项目似乎还活着——最新的提交是在 11 月。这意味着 setup.py 中没有 Python 3.5 和 3.6可能只是一个俯瞰。我建议发送一个拉取请求来解决这个问题。

如果 PR 在半年内不被接受,那么该项目将被放弃。如果它适合您,您仍然可以继续使用废弃的项目。或者你可以找一个替代品。或者,如果您真的需要该项目,您可以 fork 、更新并继续维护它。

关于python - setuptools的 "Programming Language"分类器中版本的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55739269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com