python可移植性强吗_c – 增加Python可移植性问题

我有一个用C编写的dll我想导出到

Python运行回归和单元测试(它更容易维护和运行Python的回归).

为此,我想使用Boost.Python导出dll的主API,以便它可以在Python中使用.

我的程序集如下所示:

> MyLibrary.dll //主API C库

> MyLibrary.pyd //只包含BOOST_PYTHON_MODULE导出定义的瘦dll项目(取决于MyLibrary.dll)

> … // MyLibrary.dll依赖的其他C dll文件

我在MyLibrary.pyd链接时遇到了一些麻烦,但在仔细研究了一些问题后(例如here),我意识到我必须重新构建boost,同时将b2.exe指向我特定的Python版本.之后我能够从python导入并运行我的库(仅在我的机器上).

技术数据:我正在使用boost 1.51构建库,在Windows 7 x64和MSVC-10.0上构建Python 3.23(我自己的项目是从VS2010构建的).我用来与boost链接的变体是共享库,64地址模型,相应地使用我自己的构建版本.

问题是,当我尝试在另一台机器上导入库(在我的机器上构建)时,python抱怨:

ImportError: DLL load failed: The specified procedure could not be found.

在线导入MyLibrary

这引出了以下问题:

> MyLibrary.pyd是我在我的机器上构建的“python-portable”吗?意思是,除了3.23(我用来在我的机器上构建boost.python的版本)之外,它是否适用于其他版本的Python?

> MyLibrary.pyd的用户是否必须使用自己的python版本重新构建boost才能成功导入它?

>到目前为止,我们一直在使用BoostPro提供的Windows预构建的boost安装程序.如果我们只是决定在整个团队中使用“正确”的Python版本(BoostPro链接版本),那么构建链接的Python的版本是什么?如果我们只是决定使用Python的“正确”版本,我是否可以让用户自己解决这个问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值