我有一个程序(用C和C ++编写),它嵌入了Python和Python动态库的链接。目前它使用Python 2.6,但要求是使用机器上安装的任何版本(目前是2.6或2.7;目前没有计划支持3.x)。怎么可能这样做?
一种显而易见的方法是使用dlopen()
/ LoadLibrary()
动态加载任何可用的库,并获取我需要的函数地址。
问题是有些数据结构可以在2.6和2.7之间进行更改。如果我针对2.6标头编译我的程序,它会对2.7有效吗?是否支持这样的事情?
另一个替代方案是分别针对2.6和2.7编译程序(或至少是负责Python接口的模块),并分发两个单独的版本。这显然是不可取的。
我还缺少其他方法吗?
平台是Windows和Linux。