我有几个python项目,在pip requirements files中列出了不同的依赖项集.我已经开始考虑将代码移植到python 3,但我需要知道我的依赖项是否已经存在.

是否可以判断requirements.txt文件中的哪些包支持python 3,哪些不支持?

示例requirements.txt内容:

mysql-python==1.2.5
lxml==3.3.4
Fabric==1.8.0

在这个列表中,只有lxml个支持python 3.


只是旁注.

有一个Python 3 Wall of Superpowers(python3wos项目)展示了python 3对流行python包的支持.

据我所知,python3wos定期解析Python Package Index个html页面,checks解析Programming Language :: Python :: 3个文本,以定义包是否支持python第三分支.难道没有什么比在PyPI上删除html更简单的了吗?

推荐答案

在@thefourtheye和py3readiness.org个来源的帮助下,我找到了我所需要的东西.

Brett Cannon的caniusepython3模块:

确定哪些项目阻止您移植到Python 3

这个脚本接收一组依赖项,然后找出哪个依赖项

示例(针对问题中的requirements.txt):

$ caniusepython3 -r requirements.txt 
Finding and checking dependencies ...

You need 2 projects to transition to Python 3.
Of those 2 projects, 2 have no direct dependencies blocking their transition:

  fabric
  mysql-python

我应该注意到,它仍然使用与python3wos相同的方法——在包页面上查找Programming Language :: Python :: 3x个分类器.

还有一个web-interface,您可以在其中键入依赖项或删除requirements.txt文件.

Python-3.x相关问答推荐

使用具有相同索引的多次出现的索引列表更新NumPy数组

在循环中使用Print&S结束参数时出现奇怪的问题

Python - 根据条件附加 NULL 值

数据框中从每个组/ID的底部删除行

如何查找以开头并替换的字符串

我想使用命令提示符安装 cv2

拆分列表的元素并将拆分后的元素包含到列表中

pytorch 中 mps 设备的 manual_seed

Pandas 窗口聚合两个排序表

当参数名称与 typing.Protocol 中定义的名称不同时发生 mypy 错误

使用gekko python的混合整数非线性规划

如何使用 regex sub 根据列表中的变量替换字符

过滤查询集和Q运算符的不同值

Seaborn:注释线性回归方程

为什么包含类的名称不被识别为返回值函数注释?

为什么`multiprocessing.Queue.get`这么慢?

为 True 相交两个布尔数组

python判断一个方法是否被调用而不模拟它

如何在 Pandas 中的超 Big Data 框上创建数据透视表

Python,Docker - ascii编解码器无法编码字符