pybind11 扩展库非常强大,如何用vs2019生成工程,这样就可以避免使用cmake来在linux上边生成工程文件了。
A. linux 上边的工作
- 下载pybind11 只要下载不需要编译,网上很我文章要编译,实际上只要里边的头文件就可以,根本不需要编译,我就下载到了 ~/pybind11 目录下边了
- pip install pytest
- anaconda3 安装 python3.8
B. windows 下边的操作
1. vs2019 生成 linux 工程,我的工程名是 pybind11Test。
2. 增加pybind11Test.cpp
#include <cstdio>
#include <pybind11/pybind11.h>
int add(int i, int j) {
return i + j;
}
PYBIND11_MODULE(pybind11Test, m) {
m.doc() = "pybind11 example plugin"; // optional module docstring
m.def("add", &add, "A function which adds two numbers");
m.def("foo", []() {
return "Hello, World!";
});
}
这里的pybind11Test 要和工程名一样,不能随便改,否则后边引入模块后找不到里边的方法。
3.
vc++ 目录里边增加
/home/yangzm/pybind11/include
/home/yangzm/anaconda3/include/python3.8
常规
目标文件: 由lib$(ProjectName) 改成 $(ProjectName)
动态库(.so) 动态库(.so)
链接
输出文件: $(TargetDir)$(ProjectName).cpython-38-x86_64-linux-gnu.so
其中.cpython-38-x86_64-linux-gnu.so 是用 python -c "from distutils import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))" 在linux下边生成的
附加目录:/home/yangzm/anaconda3/lib/
输入-》依赖库-》python3.8
4. 把生成的库copy 到linux 机器上边的
/home/yangzm/anaconda3/lib/python3.8/site-packages 下边,这里可以自动加载
5. 在linux下边测试:
import pybind11Test
pybind11Test.foo()
可以了,成功!
本文介绍了如何利用Visual Studio 2019和pybind11在Windows环境下创建一个适用于Linux的Python扩展库。主要步骤包括在Linux上下载pybind11头文件,安装Python相关工具,在Windows下配置VS2019工程,设置包含路径、输出文件格式,并确保生成的库能在Linux环境中正确运行。
2342

被折叠的 条评论
为什么被折叠?



