目录
pybind11配置
1.利用anaconda创建虚拟环境,python版本3.8(pybind是虚拟环境的名称)
conda create -n pybind python=3.8
2.激活虚拟环境,安装pybind11
conda activate pybind
pip install pybind11
3.进入vs2019,创建新的工程项目
4.点击生成中的配置管理器,设置成如下配置
5.点击项目中的属性,显示如下:
6.将配置属性-常规-配置类型设置为动态库
7.点击配置属性-高级-目标文件扩展名,将其修改为.pyd
8.点击VC++目录,将包含目录设为python的include路径和pyblind的include路径。将库目录设置为Python的libs路径。
包含目录设置结果:
C:\Users\A\.conda\envs\pybind\include
C:\Users\A\.conda\envs\pybind\Lib\site-packages\pybind11\include
库目录设置结果:
C:\Users\A\.conda\envs\pybind\libs
9.点击链接器-输入-附加依赖项,添加libs文件夹中的.lib文件。
注:python版本不同会导致添加的lib文件名不一样,需要根据自己的情况配置
附加依赖项设置结果:
C:\Users\A\.conda\envs\pybind\libs\python3.lib
C:\Users\A\.conda\envs\pybind\libs\python39.lib
libtorch配置
1.根据使用的torch版本下载对应的libtorch,如torch版本是1.8.2,则libtorch版本也是1.8.2。下载链接如下:
https://blog.csdn.net/weixin_43742643/article/details/115218126
注:libtorch有debug和release两种版本,但是要和pybind11一起配置,建议下载release版本,本人尝试使用debug版本没有成功。
2. 参考以下链接进行后续配置:
https://blog.csdn.net/weixin_45632168/article/details/114679263
验证配置结果
输入以下代码,点击生成按钮:
#include <pybind11\pybind11.h>
#include <torch/torch.h>
torch::Tensor my_add(torch::Tensor a, torch::Tensor b)
{
return 2 * a + b;
}
namespace py = pybind11;
PYBIND11_MODULE(my_lib, m)
{
m.def("my_add", my_add);
}
结果如下,说明成功: