問題タブ [py++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2398 参照

c++ - Pythonの重要なC++拡張機能

私はかなり大きなC++ライブラリを持っており、それをサポートするいくつかのサブライブラリがあり、すべてをPython拡張機能に変換する必要があります。クロスプラットフォームである必要があるため、distutilsを使用していますが、より優れたツールがあれば、提案を受け付けています。

distutilsに最初にサブライブラリをコンパイルさせ、メインライブラリから拡張機能を作成するときにそれらをリンクさせる方法はありますか?

0 投票する
3 に答える
6515 参照

c++ - Py++ によって生成されたコードを Python 拡張機能として使用する

Python で使用する既存の C++ ライブラリをラップする必要があります。Python で使用するために C++ をラップする適切な方法の選択に関するこの回答を読んだ後、私は Py++ を使用することにしました。

チュートリアル ファイルを使用して Py++のチュートリアルを実行し、期待される出力を で取得しgenerated.cppましたが、生成されたコードを Python にインポートできる拡張機能として実際に使用するために何をすべきかわかりませんでした。コードをコンパイルしなければならないのは確かですが、何を使って?bjamを使用することになっていますか?

0 投票する
3 に答える
1197 参照

c++ - PythonからIBAPIを呼び出す

IB=インタラクティブブローカー

2つの主な選択肢があるようです

  1. SWIG
  2. Boost.Python + Py ++

これら2つの方法を使用することの相対的な長所または短所をある程度理解しています。しかし、ほとんどすべての議論(SOで)は、これらのツールのどれが複雑なタスクに適しているかについて話します。私が聞きたいのは、APIを呼び出すc ++ルーチンにデータを渡すために、これら2つのうちどちらを使用する必要があるかということです。

私は学習曲線について質問しているだけだと思います!

0 投票する
1 に答える
517 参照

c++ - Boost.python/pyplusplusでintポインタメンバー変数をラップします

boost.pythonまたはpyplusplusを使用している場合、intポインター、またはクラスのメンバー変数であるポインターをラップするにはどうすればよいですか?

たとえばx、次のクラスからどのようにラップしますか?

0 投票する
1 に答える
410 参照

python - Boost.Python で HWND をラップして渡す

コンストラクターで HWND ウィンドウ ハンドルを受け取る C++ レガシー クラス用の Boost.Python ラッパー (Py++ を使用) を作成しました。ただし、モジュールを使用しようとしたときにモジュールを python にエクスポートした後、型の不一致エラーが発生します。

ラップしている C++ クラスは次のとおりです。

Py++ 出力:

生成されたラッパー:

Python では、一致しないエラーが発生します。

この問題を修正して、Python で (win32gui から) ウィンドウのハンドルを C++ クラスに渡し、それとやり取りできるようにするにはどうすればよいですか?

環境: Visual Studio 2008、Boost 1.44、gcc-xml 0.9.0、py++ 1.0.0、pygccxml 1.1.0

0 投票する
1 に答える
1158 参照

python - Boost.Python:Pythonで渡されたバッファに入力します

Pythonで(次の条件で)バッファに入力できるかどうか疑問に思っていました。その場合、どのように入力しますか?

Pythonに入力する必要のあるC++のバッファーがあります。バッファのアドレスは、バッファのアドレスへのvoidポインタGetAddressを返すメソッドを介して取得されます。

Py ++を使用して、Boost.Pythonラッパーを生成し、次のようにクラスをPythonにエクスポートできます。

Pythonでは、GetAddressの出力はメモリアドレスに対してvoid*です。

問題は、Pythonがvoid*アドレスオブジェクトで何もできないことです。バッファ内の2番目の要素にアクセスしようとすると、次のいずれも機能しません。

環境:Visual Studio 2008、Boost 1.44、gcc-xml 0.9.0、py ++ 1.0.0、pygccxml 1.1.0、Python 2.6.6

0 投票する
1 に答える
150 参照

c++ - boost :: pythonを使用してPython型からラップされたC++型を抽出するにはどうすればよいですか?

Py++を使用してC++クラスをラップしましたが、Pythonではすべてがうまく機能しています。c ++クラスをインスタンス化したり、メソッドを呼び出したりすることができます。

現在、PythonをC++アプリケーションに埋め込もうとしています。これは、ほとんどの場合、正常に機能しています。Pythonモジュールで関数を呼び出したり、戻り値を取得したりできます。

私が呼び出しているPythonコードは、ラップしたクラスの1つを返します。

私はこの関数をC++から次のように呼び出しています:

問題は、extractorが実際にPyObject *をMyClassに抽出/変換しないことです(つまり、extractor.check()は常にfalseです)。

ドキュメントによると、これはラップされたC++クラスを抽出する正しい方法です。

Python関数から基本的なデータ型(ints / floats / dicts)を返そうとしましたが、すべて正しく抽出されています。

足りないものはありますか?データを取得してMyClassにキャストする別の方法はありますか?

0 投票する
0 に答える
312 参照

python - PythonオブジェクトをC++ライブラリからJSONに変換するには?

boost.python と py++ を使用して共有ライブラリを作成しました。ライブラリで定義された型からオブジェクトをインスタンス化できます。これらのオブジェクトをjson経由でエンコード/デコードしたい。jsonpickleモジュールを使用しています。ただし、属性はエンコードされません。私はいくつかの研究をしました。__dict__エンコードされたオブジェクトが空であるため、問題が発生する可能性が最も高いです。

共有ライブラリのサンプル クラス:

これは python ラッパーです:

Python からのコード部分:

そして、出力:

json 出力にxorがないことに注意してください。y

なにか提案を?

ありがとう。

0 投票する
1 に答える
82 参照

python - p++ のコンパイルとセットアップでの Python 構文エラー

py++ を最新バージョンの python に移植しようとしていますが、次のコードに不満を感じています。私はpythonが初めてです。どんな助けでも大歓迎です、そして前もって感謝します。

エラー:

コードは以下のとおりです。