查找Python/Django项目的所有未满足的依赖项

查找Python/Django项目的所有未满足的依赖项,python,code-analysis,pypi,Python,Code Analysis,Pypi,我收到了十几个遗留的Django应用程序要维护。这个过程的第一部分是将他们从古老的Ubuntu9.04服务器(已经很久没有支持)转移到新的、安全的服务器上 但是这些项目不包括任何类型的依赖项列表。我习惯于在开发站点时生成requirements.txt文件,这使重新部署成为一个简单而自动化的过程 就目前情况而言,我必须手动逐步完成这些项目,确保每个角落都能找到可能缺少的依赖项。要么那样,要么我安装所有东西 这里有自动代码分析选项吗?它可以用来扫描每个项目的本地项目目录,以生成所需包的列表。。。理

我收到了十几个遗留的Django应用程序要维护。这个过程的第一部分是将他们从古老的Ubuntu9.04服务器(已经很久没有支持)转移到新的、安全的服务器上

但是这些项目不包括任何类型的依赖项列表。我习惯于在开发站点时生成
requirements.txt
文件,这使重新部署成为一个简单而自动化的过程

就目前情况而言,我必须手动逐步完成这些项目,确保每个角落都能找到可能缺少的依赖项。要么那样,要么我安装所有东西

这里有自动代码分析选项吗?它可以用来扫描每个项目的本地项目目录,以生成所需包的列表。。。理想情况下使用PyPI格式的包名。

可用于此目的

它位于
z3c
名称空间中,但据我所知,这只是因为它是在考虑Zope生态系统的情况下开发的,但它也可以用于普通Python项目。除非您想运行它的测试,否则它对Zope包没有任何依赖关系

<>但是它只考虑在<代码> Stutest.Py <代码>中声明的依赖关系,而不是在<代码>要求中。TXT < /代码>。但是,一旦确定了完整的依赖项列表,就可以很容易地将缺失的依赖项与之同步

用法:

  • 激活您的virtualenv,然后安装
    z3c.dependencychecker
    ,例如通过执行
    pip安装z3c.dependencychecker
  • 确保您最近为项目运行了
    python setup.py develope
    ,这样您就有了最新的
    *.egg info
  • cd
    到项目源目录中
  • 运行
    dependencychecker

请注意,
z3c.dependencychecker
并不是十全十美的(因为它的工作方式,从定义上讲,它并不完美),因此它可能会报告一些误报。但根据我的经验,这是一个很好的开始,而且应该很容易验证它报告特定依赖项的原因,并消除误报。

您可以编写脚本来搜索
import x
from x import y
语句,然后在目标环境中运行所有这些语句,查看哪些有效,哪些无效。。。