将python27.dll复制为python25.dll

0 投票
2 回答
639 浏览
提问于 2025-04-16 15:48

我有一些Windows专用的应用程序,它们非得使用Python 2.5。我现在偶尔用Python 2.7,并且正在向3.x版本过渡,所以我不想再让团队去维护另一个Python版本。

于是,我想了个办法,创建了一个python25.dll,把python27.dll复制到那个应用程序的同一个bin文件夹里。经过一些初步测试,发现它确实能正常工作。

我想问的是:这样做会不会引发很多问题?这两个DLL之间有什么区别?

是的,我知道在更新Python的时候,可能需要重新复制那个DLL。

2 个回答

0

我有点担心你可能在说我写的软件,但你在一个完全不同的国家,所以我觉得不太可能。:)

我能看到至少有三个潜在的问题:

  1. 这几乎肯定会让你失去对软件的任何保修或支持协议。我们对在同一服务器上运行的其他软件非常谨慎,如果有人随便动软件的内部结构,那就会遇到很多麻烦,因为我们需要从头开始进行非常昂贵的系统重建。

  2. 如果系统只有Python程序的字节码,而没有源代码,你可能会发现系统拒绝加载任何预编译的功能,因为字节码版本已经改变了。

  3. 在Python 2.5中可能有一些他们不知道的bug或特性,他们可能依赖于这些东西,这可能会导致系统行为出现意外的变化。

0

在这个情况下,主要的区别可能在于这两个DLL文件导出的符号。我对Windows的工具不太熟悉,但你可以试试用Windows上类似于Unix的nmobjdump的工具,看看在2.5版本中有没有导出的符号,而在2.7版本中没有。我不太期待会有太多这样的符号。

解决你问题的另一种方法是直接问一下那些专有软件的供应商,为什么他们要求使用=2.5而不是>=2.5,可能他们遇到了一些比较微妙的问题,这些问题可能和API没有直接关系,而是某些实现细节...

撰写回答