19

我有几个 python 项目,它们在pip 要求文件中列出了不同的依赖项集。我已经开始考虑将代码移植到 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 Superpowerspython3wos项目)显示了流行的 python 包的 python 3 支持。

据我了解,python3wos定期解析Python Package Indexhtml 页面并检查文本以Programming Language :: Python :: 3定义包是否支持 python 3rd 分支。没有比在 PyPI 上抓取 html 更简单的事情了吗?

4

1 回答 1

26

在@thefourtheye 和py3readiness.org资源的帮助下,我找到了我真正需要的东西。

caniusepython3Brett Cannon 的模块:

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

该脚本接受一组依赖项,然后找出它们中的哪些阻碍了您移植到 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 界面,您可以在其中键入依赖项或删除requirements.txt文件。

于 2014-04-09T02:14:13.513 回答