python - 我需要什么版本的软件包?

标签 python

我正在开发一个使用其他几个包(numpy、scipy 等)的 Python 包,我想知道是否有一种简单的方法来确定每个包所需的最低版本。例如,我需要 scipy 0.11,因为我使用的某些函数在此之前并不存在。有没有比检查我所做的每个函数调用更简单的方法来解决这个问题?这需要一段时间...

我知道我可以只需要我当前正在运行的版本,但我不希望人们在不需要时必须更新一堆软件包(即我正在运行 scipy 0.13,但不要'不需要这样要求)。

最佳答案

确实没有简单的方法可以做到这一点。任何类型的自动化工具都必须依赖元数据来告诉它每个函数、类等首先添加到库的哪个版本中。(即使如此,现有函数中的接口(interface)或行为也可能会发生变化)大多数项目没有这样的信息;那些这样做的,通常只是采用类似于 Python 文档的形式(例如 here ),您必须对其进行抓取和解析。

一个更好的解决方案是首先确保您有足够的测试覆盖率,然后安装 scipy 0.11 并测试它。有效吗?太好了,你支持 0.11。如果没有,您可以尝试使其工作,或者只是说您需要 0.12。

“足够”的含义取决于您的目标市场。与针对专家开发人员的开源库相比,出售给带有支持契约(Contract)的企业客户的商业程序需要对您声称支持的依赖项进行更严格的测试。

在某些情况下,您可以不必记录测试内容,并保持开放状态,无论您的代码是否适用于早期版本。 0.11 可能有效,也可能无效,如果用户想尝试(特别是如果他们想向您或维基等社区资源报告他们的体验),请鼓励它,但不要 promise 正式支持他们。

关于python - 我需要什么版本的软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032916/

相关文章:

python - django 2外键从一个模型到另一个模型

python - 是否可以为 VirtualBox 使用 python3 绑定(bind)?

python - 快速截图 Winapi 和 Opencv

python - 在 DJANGO 模板中总结数据库中的值

python - 编译脚本文件 Lua 或 Python

python - 将 Unicode 字符串转换为 Python 中的字符串(包含额外符号)

python - 如何在调用函数后存储输出并在下次运行中使用它

python - 在 python setup.py egg_info 上使用 pip 中断安装

python - 编写长if-else语句的pythonic方式是什么?

python - AzureML 推理架构中出现 "list index out of range"错误