假设Python应用程序依赖于一个模块,并且该模块在setup.py的分类器元数据中仅声明“ Programming Language :: Python :: 3.5”,则该应用程序可以声明其他版本的Python解释器(例如,“ Programming语言:: 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根本不检查分类器吗?
答案 0 :(得分:0)
行事分类器是作者为用户而不是为pip
之类的工具编写的元数据。您可以从中获得一些有用的信息,尤其是在进行其他研究时。
例如,如果一个项目声明与Python 2.4兼容,则可以确保它永远不支持Python 3。
如果一个项目声明与Python 3.4和3.5兼容,但与3.7不兼容,则可以预期该代码将与3.7兼容,但是仍然有可能不兼容。
您还应该调查。如果项目长期未更新,您应该开始担心项目将不再维护,最好开始寻找更现代的替换项目。
在您的问题中,该项目似乎还活着-最近一次提交是在11月。这意味着setup.py
中缺少Python 3.5和3.6可能只是一个忽略。我建议发送拉动请求以解决此问题。
如果PR在半年之内不被接受,那么该项目将被放弃。如果适合您,您仍然可以继续使用废弃的项目。或者,您可以找到替代品。或者,如果您确实需要该项目,则可以对其进行分叉,更新并继续进行维护。