Windowsでpybind11の使用

 
Pybind11はPythonがC ++を呼び出し、vs2019のHelloWorldの中で書かれたPythonの拡張機能を導入するための最も便利なツールであると考えられて
 
1.ダウンロードするpybind11  https://github.com/pybind/pybind11/releases/tag/v2.3.0
限り、このライブラリとしてそれに含ま
 
2.対新しい空のプロジェクトを作成します。
 
    2.1出力タイプDLLを調整し、出力ファイル名はPYDで調整
 

 

 

 

 
    2.2私はPythonのアナコンダの家族のバケットを使用し、Pythonとpybind11ヘッダファイルをインクルード
 
 

 

 
    2.3リンクのpythonのlib
 

 

 
   Pythonのlibに2.4リンカ
 
 

 

 
 
3.コード例:
 
関数定義された2つの方法で、一方が他方よりシンプルでデフ(「機能」、および引用機能、「説明」)で、直接定義されるがあります。
ほとんどのC ++コードを変更することなく、非常に単純なPybind、
 
#include <pybind11/pybind11.h>

namespace py = pybind11;

int chufa(int a, int b)
{
    return a / b;
}

PYBIND11_MODULE(example, m) {
    m.doc() = "....";
    m.def("foo", []() {
        return "Hello world!";
        });
    m.def("chufa", &chufa, "just chufa");
}

 

 
4. build 得到pyd文件
 

 

 
在python中直接import就可以了...
 
 
5. 坑:
    1. 要注意编译出来的是64位还是32位的包, 建议全部在64位下编译, 否则可能会报错:
        ImportError: DLL load failed: %1 is not a valid Win32 application. But the DLL's are there
 
    2. pyd的文件名要和包名一致, 如果输出的pyd文件名称不对需要手动改过来, 否则会报错误:
        ImportError: dynamic module does not define module export function 
 
 

おすすめ

転載: www.cnblogs.com/JiangOil/p/11129873.html