我有一些使用 cx_Oracle 连接到 Oracle 数据库的小型 python 应用程序。我通过使用 py2exe 编译这些应用程序来部署它们,这在许多情况下都可以正常工作。
问题是,对于需要安装它的许多人来说,没有标准的 Oracle 客户端版本(例如 9i 和 10g),试图让每个人都在一个 Oracle 客户端版本上标准化会非常令人沮丧。我目前正在使用 9.2 客户端和 cx_Oracle 4.4.1 for 9i,所以当我 py2exe 生成的 exe 包含 cx_Oracle 4.4.1 库并且不适用于 10g 客户端。
我不使用任何 Oracle 版本的任何特定功能,因此我真的没有理由关心正在使用的客户端版本,除了 cx_Oracle 兼容性问题。
理想的解决方案是以某种方式编译一个完全独立于机器上安装的 Oracle 客户端的版本。
如果这不可能,我愿意为每个主要的 Oracle 版本(my_app_9i.exe、my_app_10g.exe 等)编译单独的 exe,但我什至想不出一个简单的方法来做到这一点,因为安装新的 cx_Oracle 会覆盖我的旧版本,每当我进行更改时,我都必须不断地来回交换库以编译其他版本。
欢迎任何建议或其他选择。