ray*_*ayx 6 python pip setuptools
假设一个 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在安装包时根本不检查分类器?
phd*_*phd 12
Trove 分类器是作者为用户编写的元数据,而不是为pip. 您可以从中获得一些有用的信息,尤其是通过额外的研究。
例如,如果一个项目声明与 Python 2.4 兼容,您可以确定它永远不会支持 Python 3。
\n\n如果一个项目声明与 Python 3.4 和 3.5 兼容,但不与 3.7 兼容,您可以预期该代码将与 3.7 兼容,但仍有可能不兼容。
\n\n你也应该调查一下。如果该项目很长一段时间没有更新,您应该开始担心该项目不再维护,并且您最好开始寻找更现代的替代品。
\n\n在你的问题中,该项目似乎还活着 \xe2\x80\x94 ,最新提交是在 11 月。这意味着 Python 3.5 和 3.6 的缺失setup.py可能只是一个疏忽。我建议发送一个拉取请求来解决这个问题。
如果 PR 在半年内没有被接受,那么该项目就会被放弃。如果废弃的项目适合您,您仍然可以继续使用它。或者你可以找一个替代品。或者,如果您确实需要该项目,您可以分叉它、更新并继续维护它。
\n| 归档时间: |
|
| 查看次数: |
1446 次 |
| 最近记录: |