繁体   English   中英

我如何知道我的应用程序支持哪些版本的依赖项?

[英]How do I know which versions of dependencies my application supports?

因此,在开发应用程序时,最好在setup.pyinstall_requires中指定所需的最小(限制最少)依赖版本。 那么,我怎么知道我的项目实际上依赖于哪些版本的依赖项?

有没有办法自动确定这一点? 如果没有,是否有一种很好的方法来测试我指定的依赖范围的上限和下限?

理想情况下,我更愿意专注于实际开发,而不是手动跟踪我的依赖项的每个新版本并筛选发布历史以找出我使用的功能何时首次引入。

您不需要指定最低版本,但您应该关注性能更好的依赖项。 永远记住这一点。

如果minimal意味着依赖项的数量,您可以使用 package,例如pipdeptree ,它显示了您环境中已安装库的依赖关系树。 您可以只在您的需求中列出顶级库,其他依赖项将与这些顶级库一起安装。

当您安装该库并只需键入pipdeptree时,您将看到类似的 output 如下:

python-gitlab==1.8.0
  - requests [required: >=2.4.2, installed: 2.22.0]
    - certifi [required: >=2017.4.17, installed: 2019.6.16]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.9, installed: 2.8]
    - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.3]
  - six [required: Any, installed: 1.11.0]
python-jenkins==1.7.0
  - multi-key-dict [required: Any, installed: 2.0.3]
  - pbr [required: >=0.8.2, installed: 1.10.0]
  - requests [required: Any, installed: 2.22.0]
    - certifi [required: >=2017.4.17, installed: 2019.6.16]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.9, installed: 2.8]
    - urllib3 [required: >=1.21.1,<1.26,!=1.25.1,!=1.25.0, installed: 1.25.3]
  - six [required: >=1.3.0, installed: 1.11.0]

所以你的要求可能是这样的:

python-gitlab==1.8.0
python-jenkins==1.7.0

如果您打算指定可能的最低版本,那么我不知道。

“正确”的方式只是跟踪您在每个依赖项中使用的功能,然后每个依赖项的最低版本将是具有这些功能或具有一些重要更新(安全性、速度等)的最低版本。

“如果它有效,它就有效”的方法是编写一个脚本,通过安装它并查看它是否有效,强制每个单独依赖项的版本为每个依赖项获取一个范围。 您可以使用 github 操作轻松完成此操作(尽管如果您的仓库是私有的,则必须付费)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM