python - Boost-Python C++ 项目构建,如何使用 Python 中的新库?

标签 python c++ visual-studio-2012 pycharm boost-python

我有一个 VS12 项目,并使用 boost-python 向 Python 公开了一些类。经过一些链接问题后,我的项目终于正确构建并生成了 MySDK.libMySDK.dll。我将 Boost Python 模块称为与库相同的名称,即 BOOST_PYTHON_MODULE(MySDK)。这些 .lib.dll 是我从 Python 使用 MySDK 所需要的吗?

我正在使用 Pycharm 社区,但找不到将生成的 MySDK.libMySDK.dll 作为 Python 库模块导入的方法。

遗憾的是,没有太多关于在 Boost Python 编码练习之后做什么的信息。

最佳答案

我将 VS12 项目输出文件扩展名更改为 .pyd(右键单击项目 -> 属性 -> 链接器 -> 常规 -> 输出文件 -> 更改为 $(OutDir) $(TargetName).pyd),现在我可以从命令行在 Python 中加载库,但仍然不能从 Pycharm 加载。

之后,将.pyd(以及.lib.dll)所在的目录创建在下路径 变量。然后 Pycharm 能够成功加载并运行我的自定义 boost-python 库。

UPDATE Python 理解并可以加载的pyd 只是将dll 重命名为pyd。因此,一种更简洁的方法是让 VS12 项目保持原样生成原始 $(OutDir)$(TargetName)$(TargetExt)dll 输出并简单地添加一个Post-Build Eventdll 复制到 pyd 中:

(右键单击项目 -> 属性 -> 配置属性 -> 构建事件 -> 构建后事件 -> 命令行)并添加 copy $(OutDir)$(TargetName )$(TargetExt) $(OutDir)$(目标名称).pyd

关于python - Boost-Python C++ 项目构建,如何使用 Python 中的新库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105062/

相关文章:

Python绘制实时数据

c++ - 如何使用 Qt 从文件中读取 UTF-8 文本?

c++ - 无法从 "initializer list"转换

c++ - 使用谷歌基准测试重现 vector 插入的性能结果

python - MySQL 数据未在 Web 应用程序中更新 - Python/Flask

python - 迭代数据框时如何引用行和列

tfs - 我可以修改 TFS 2012 中的默认 checkin 操作吗?

visual-studio-2012 - 按 Ctrl + S 自动打开输出窗口

.net - 用于在 vb.net 和 vs2012 中解压缩 RAR 存档的 DLL 文件

python - C++ Qt : QProcess run Python script path specifying Python version