摘要:Python丰富的开发生态提供了多种多样的第三方库, 极大地提高了开发者的开发效率和质量. 第三方库开发者通过对代码底层的封装, 使得上层应用开发者只需调用API就可以使用相关功能, 从而快速完成开发任务. 然而, 第三方库API不会保持恒定不变. 由于缺陷修复、代码重构、功能新增等, 第三方库代码会不断更新. 更新后部分API发生了不兼容的更改, 从而导致上层应用运行异常终止或者产生不一致的结果. 因此, Python第三方库API的兼容性问题已成为目前开源生态中亟需解决的问题之一. 目前已有相关研究工作对Python第三方库API兼容性问题展开研究, 但兼容性问题原因的分类覆盖不够完全, 无法输出兼容性问题的细粒度原因. 为此, 对Python第三方库API兼容性问题的表现形式和产生原因开展了实证研究, 并针对性提出了Python不兼容API的静态检测方法. 首先, 针对flask库和pandas库的总共6个版本对, 通过收集版本更新日志、运行回归测试相结合的方法, 共收集108个不兼容API对. 接着, 对收集到的数据开展实证研究, 总结了Python第三方库API兼容性问题的表现形式和产生原因. 最后, 提出了一种基于静态分析技术的Python不兼容API的检测方法, 输出句法层面的不兼容API问题产生原因. 在4个常用Python第三方库的共计12个版本对上进行了实验评估, 结果表明检测方法具有良好的有效性、泛化性、时间性能、空间性能以及易用性.