Ube*_*per 14 python backwards-compatibility
我有一些代码,我试图让它与ESRI的地理处理器很好地配合.但是,ESRI的地理处理器运行在Python 2.2,2.3,2.4,2.5上.我们需要让我们的工具适用于任何版本.因此,我花了很多时间为不同的版本编写解决方法,使得包装器地理处理器在所有版本中具有相同的功能.
现在这里有一件大事,是否有某种应用程序基本上可以扫描模块,看它的语法和方法是否与上述Python版本向后兼容?
不幸的是,我无法安装Python 2.2,因为我有Arcgis 9.3,它需要Python 2.5.反之亦然,我已经完成了所有模块依赖关系的排序和计算.(win32com,ctypes等).
但我担心我的实际代码,我可能花上几个小时去阅读哪些关键字添加了什么版本等,但这基本上将是一个巨大的头痛.是否有某种应用程序可以执行这些操作?
Cra*_*ast 11
如果您正在积极开发商业产品,并且您真的想要正确支持所有这些版本,我建议:
编写一个可以运行的自动化测试套件,并测试整个库/应用程序的功能.
为每个测试环境设置一台机器或理想的虚拟机(如果您的产品不是win32,则为python 2.2-2.6和任何平台组合).鉴于现在有几种免费的虚拟化产品(VirtualBox和VMWare Server,请注明两个),现在这一点特别容易实现.
使用类似buildbot的东西来自动化在所有其他平台上运行的测试,并收集结果.
然而,我可能会提到2.2和2.3之间以及2.3和2.4之间的重大变化.这就是为什么大多数python库只支持2.3,而且一些数字正在转向仅支持2.4及以上.
每个主要版本都有一个"python 2.x中的新功能"文档,但编码2.2表示你错过了:
from __future__ import generators)只是为了命名一小部分很棒的东西你可能没有.
你必须真正考虑你想要支持一个7岁的python版本有多么糟糕,并错过了许多可以减少你的代码大小(或者可能只是提高可读性)的很酷的功能.
Rol*_*Max 10
尝试pyqver:https://github.com/ghewgill/pyqver/
为您提供分析所用关键字和模块的给定python脚本的最低版本.
此外,您可以在本地编译python 2.2并使用virtualenv创建一个带有--python标志的python 2.2环境.
| 归档时间: |
|
| 查看次数: |
3285 次 |
| 最近记录: |