我有几个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相关问答推荐

使用PANAS根据另两个列表中的值对一个列表中的字符串值进行分组

像计数不显示在html和想知道如果我的模型设置正确

AddMultplicationEquality() 用于多个变量

如何强调您正在寻求以 pandas 数据帧的另一列为条件的差异?

CSV-DAT 转换时将引号添加到数据中

公开数据中的卫星图像网页抓取优化

pip install saxonche v 12.1.0 产生 FileNotFoundError

隐藏Cartopy中高纬度非矩形投影的右侧轴(纬度)标签

Keras 中 Conv2D 层的意外结果

类不继承时 super() 的用途

如何将具有多个参数的函数传递给 python concurrent.futures.ProcessPoolExecutor.map()?

在气流中运行 DAG 时出现处理信号:ttou消息

python 3集合中的Discard()和Remove()函数有什么区别

Generic[T] 基类 - 如何从实例中获取 T 的类型?

Python 3.9.8 使用 Black 并导入 `typed_ast.ast3` 失败

使用 pytest.fixture 返回模拟对象的正确方法

在 Pandas 数据框中显示对图

如何使用 asyncio 添加连接超时?

在不关心项目的情况下运行生成器功能的更简单方法

首次使用后 zip 变量为空