pybind11を使用して、既存の埋め込みPythonインタープリターでC ++機能を公開する

13NP

私はこのタイプのコーディングを初めて試しているので、知識不足をご容赦ください。

要件:pybind11を使用してC ++でPythonライブラリをインポート/使用できるようにPythonインタープリターを埋め込んだC ++コードがあります。さらに、この完全なC ++コードのラッパーを(Pythonインタープリター部分とともに)作成し、モジュールとしてpythonに公開したいと思います。わかりやすくするために、以下の例を検討してください。

**Main_code.cpp:**

    #include <iostream>
    #include <pybind11/embed.h> // everything needed for embedding
    
    int main() {
        pybind11::scoped_interpreter guard{}; // start the interpreter and keep it alive
        pybind11::module sys = pybind11::module::import("sys");
        pybind11::print(sys.attr("path"));
        return 0;
    }

このコードをPythonに公開し(たとえば、Cpp_funcという名前のモジュールとして)、「importCpp_func」を使用してpyスクリプトにインポートしたいと思います。

私が今まで試したこと:pybind11を使用すると、PythonインタープリターをPythonに埋め込むことなく、サンプルのcppコードを拡張することができました。例は、pybind11 docshttps //pybind11.readthedocs.io/en/latest/basics.html 「単純な関数のバインディングの作成」セクションから抜粋したものです。しかし、PythonインタープリターがすでにC ++コードに埋め込まれている場合、同じことを行う方法を理解できません。

私の要件が明確であることを願っています。これについてのコメントは本当に役に立ちます!

前もって感謝します!

ヒラメ

scoped_interpreter_guardちょうどであるRAIIラッパーの周りinitialize_interpreterfinalize_interpreterfinalize_interpreter代わりに自分自身を呼び出すことができますPy_Finalize

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

pybind11を使用したマルチスレッドC ++プログラムへのPythonインタープリターの埋め込み

分類Dev

Pythonインタープリター(pybind11)が埋め込まれたCPPファイルをビルドして実行する方法

分類Dev

pybind11を使用してvirtualenvからPythonインタープリターを実行する方法は?

分類Dev

Python、C ++、およびpybind11を使用して生のPODポインター(配列)を返し、渡す

分類Dev

pybind11を使用してPythonからC ++へのポインターを渡す

分類Dev

OSXのFinder機能でファイルを公開する

分類Dev

c-library機能をノードに公開する

分類Dev

Pybind11を使用してEigen :: TensorをPythonに公開する

分類Dev

機能コンポーネントから機能を公開する-React

分類Dev

公開する前に、公開されたChrome拡張機能ページへのリンクを取得する

分類Dev

xunit機能テスト結果をAzuredevopsに公開する

分類Dev

VSCode拡張機能を公開する-無許可

分類Dev

GitFlowが機能を開始して公開する方法はありますか

分類Dev

pybind11でPythonを埋め込む。仮想環境が機能しない

分類Dev

スライドの特定の場所でPythonを使用してExcelファイルを埋め込みデータをPowerPointにリンクする方法

分類Dev

Pybind11:Pythonインタープリターで* .pydをインポートしようとすると、「ImportError:DLLが見つかりません」

分類Dev

pybind11を使用してtypedefタイプをバインドするための適切な構文は何ですか?

分類Dev

pybind11(C ++)で組み込みの「open」pythonメソッドを使用していますか?

分類Dev

Gitフロー:機能を終了する前に、機能を複数回公開できますか?

分類Dev

npm拡張機能を公開する際のAzureDevOps Artifacts401エラー

分類Dev

埋め込みPython:複数のサブインタープリターが機能しない

分類Dev

sklearnモデルが機能しないことを公開するGunicorn / flask API

分類Dev

pybind11バインディングを生成するためのテンプレートメタ関数

分類Dev

アプリケーションで埋め込みエアランタイムを確認すると、アプリが機能しません

分類Dev

.kar Apache Karafファイルは機能のみを公開することを目的としていますか?

分類Dev

カテゴリ機能の埋め込みをPythonで元のデータフレームに抽出する

分類Dev

Azure Functionsアプリ:Dockerコンテナーを公開する機能は何ですか?

分類Dev

新機能を備えたSSDTを使用してデータを公開する貢献者と展開計画を構築する

分類Dev

COM相互運用機能を介してコレクションをVB6アプリに公開する

Related 関連記事

  1. 1

    pybind11を使用したマルチスレッドC ++プログラムへのPythonインタープリターの埋め込み

  2. 2

    Pythonインタープリター(pybind11)が埋め込まれたCPPファイルをビルドして実行する方法

  3. 3

    pybind11を使用してvirtualenvからPythonインタープリターを実行する方法は?

  4. 4

    Python、C ++、およびpybind11を使用して生のPODポインター(配列)を返し、渡す

  5. 5

    pybind11を使用してPythonからC ++へのポインターを渡す

  6. 6

    OSXのFinder機能でファイルを公開する

  7. 7

    c-library機能をノードに公開する

  8. 8

    Pybind11を使用してEigen :: TensorをPythonに公開する

  9. 9

    機能コンポーネントから機能を公開する-React

  10. 10

    公開する前に、公開されたChrome拡張機能ページへのリンクを取得する

  11. 11

    xunit機能テスト結果をAzuredevopsに公開する

  12. 12

    VSCode拡張機能を公開する-無許可

  13. 13

    GitFlowが機能を開始して公開する方法はありますか

  14. 14

    pybind11でPythonを埋め込む。仮想環境が機能しない

  15. 15

    スライドの特定の場所でPythonを使用してExcelファイルを埋め込みデータをPowerPointにリンクする方法

  16. 16

    Pybind11:Pythonインタープリターで* .pydをインポートしようとすると、「ImportError:DLLが見つかりません」

  17. 17

    pybind11を使用してtypedefタイプをバインドするための適切な構文は何ですか?

  18. 18

    pybind11(C ++)で組み込みの「open」pythonメソッドを使用していますか?

  19. 19

    Gitフロー:機能を終了する前に、機能を複数回公開できますか?

  20. 20

    npm拡張機能を公開する際のAzureDevOps Artifacts401エラー

  21. 21

    埋め込みPython:複数のサブインタープリターが機能しない

  22. 22

    sklearnモデルが機能しないことを公開するGunicorn / flask API

  23. 23

    pybind11バインディングを生成するためのテンプレートメタ関数

  24. 24

    アプリケーションで埋め込みエアランタイムを確認すると、アプリが機能しません

  25. 25

    .kar Apache Karafファイルは機能のみを公開することを目的としていますか?

  26. 26

    カテゴリ機能の埋め込みをPythonで元のデータフレームに抽出する

  27. 27

    Azure Functionsアプリ:Dockerコンテナーを公開する機能は何ですか?

  28. 28

    新機能を備えたSSDTを使用してデータを公開する貢献者と展開計画を構築する

  29. 29

    COM相互運用機能を介してコレクションをVB6アプリに公開する

ホットタグ

アーカイブ