問題タブ [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.
c++ - Pythonの重要なC++拡張機能
私はかなり大きなC++ライブラリを持っており、それをサポートするいくつかのサブライブラリがあり、すべてをPython拡張機能に変換する必要があります。クロスプラットフォームである必要があるため、distutilsを使用していますが、より優れたツールがあれば、提案を受け付けています。
distutilsに最初にサブライブラリをコンパイルさせ、メインライブラリから拡張機能を作成するときにそれらをリンクさせる方法はありますか?
c++ - Py++ によって生成されたコードを Python 拡張機能として使用する
Python で使用する既存の C++ ライブラリをラップする必要があります。Python で使用するために C++ をラップする適切な方法の選択に関するこの回答を読んだ後、私は Py++ を使用することにしました。
チュートリアル ファイルを使用して Py++のチュートリアルを実行し、期待される出力を で取得しgenerated.cpp
ましたが、生成されたコードを Python にインポートできる拡張機能として実際に使用するために何をすべきかわかりませんでした。コードをコンパイルしなければならないのは確かですが、何を使って?bjamを使用することになっていますか?
c++ - PythonからIBAPIを呼び出す
IB=インタラクティブブローカー
2つの主な選択肢があるようです
- SWIG
- Boost.Python + Py ++
これら2つの方法を使用することの相対的な長所または短所をある程度理解しています。しかし、ほとんどすべての議論(SOで)は、これらのツールのどれが複雑なタスクに適しているかについて話します。私が聞きたいのは、APIを呼び出すc ++ルーチンにデータを渡すために、これら2つのうちどちらを使用する必要があるかということです。
私は学習曲線について質問しているだけだと思います!
c++ - Boost.python/pyplusplusでintポインタメンバー変数をラップします
boost.pythonまたはpyplusplusを使用している場合、intポインター、またはクラスのメンバー変数であるポインターをラップするにはどうすればよいですか?
たとえばx
、次のクラスからどのようにラップしますか?
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
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
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にキャストする別の方法はありますか?
python - PythonオブジェクトをC++ライブラリからJSONに変換するには?
boost.python と py++ を使用して共有ライブラリを作成しました。ライブラリで定義された型からオブジェクトをインスタンス化できます。これらのオブジェクトをjson経由でエンコード/デコードしたい。jsonpickle
モジュールを使用しています。ただし、属性はエンコードされません。私はいくつかの研究をしました。__dict__
エンコードされたオブジェクトが空であるため、問題が発生する可能性が最も高いです。
共有ライブラリのサンプル クラス:
これは python ラッパーです:
Python からのコード部分:
そして、出力:
json 出力にx
orがないことに注意してください。y
なにか提案を?
ありがとう。
python - p++ のコンパイルとセットアップでの Python 構文エラー
py++ を最新バージョンの python に移植しようとしていますが、次のコードに不満を感じています。私はpythonが初めてです。どんな助けでも大歓迎です、そして前もって感謝します。
エラー:
コードは以下のとおりです。