問題タブ [boost-python]

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 投票する
4 に答える
11821 参照

c++ - C++からPython関数を呼び出す

C++からPython関数を呼び出そうとしています。関数ポインタで実現できると思いましたが、実現できないようです。私はboost.pythonこれを達成するために使用しています。

Pythonで定義された関数があるとしましょう:

次に、この関数をC ++に渡して、そこから呼び出すことができるようにする必要があります。これを実現するために使用してC++側でコードを作成するにはどうすればよいboost.pythonですか?

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

c++ - Boost::継承を持つクラスの Python バインディング

自動生成された (Pyste を使用した) boost::python コードの何が問題なのかを理解しようとしていますが、これまでのところ運がありません。

2 つのクラスを提供する C++ ライブラリ、Magick++ がありMagick::DrawableますMagick::DrawableRectangle

https://www.imagemagick.org/subversion/ImageMagick/trunk/Magick++/lib/Magick++/Drawable.h

これらは次の引数として使用されますImage.draw(): https://www.imagemagick.org/subversion/ImageMagick/trunk/Magick++/lib/Magick++/Image.h

私はそれ用のpythonバインディングを作成しようとしています.すべてのクラスに自動生成されたラッパーがあります.

http://bitbucket.org/dan.kluev/pythonmagick/src/65d45c998ef3/src/_Drawable.cpp

http://bitbucket.org/dan.kluev/pythonmagick/src/65d45c998ef3/src/_DrawableRectangle.cpp

http://bitbucket.org/dan.kluev/pythonmagick/src/65d45c998ef3/src/_Image.cpp

問題は、DrawableBase から Drawable への間接的なクラス キャストが原因で、これらのラッパーが機能しないことです。

PyObject を Drawable にキャストする C++ で独自の draw() ラッパーを記述するよりも、これを処理するためのより良い方法はありますか?

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

c++ - boost.pythonを使用する場合のC++ストリームの何が問題になっていますか?

更新2:なぜこれがまだ賛成されているのかわかりません(2014年3月)。私が何年も前にこの質問をしたので、これは修正されたようです。最新バージョンのブーストを使用していることを確認してください。

更新:おそらく、数値をフォーマットするためにC ++ストリームを初期化する必要があり、共有ライブラリがPythonにロードされているときに初期化が行われていませんか?

呼んでいます

boost.pythonを介して共有ライブラリにエクスポートされるメソッド内。何も印刷されませんが、印刷すると

できます。

私はこれをしたいので、これは重要です:

私はこれを行うことによってそれを公開しました:

しかしstr、ベルヌーイオブジェクトでPythonのメソッドを呼び出すと、何も得られません。より単純なcoutの問題が関係しているのではないかと思います。

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

python - C++ ストリームを使用して数値をシリアル化すると、Mac で boost.python がクラッシュする

リンクに問題があると思います (Mac で実行していて、ライブラリをモジュールに変更する必要がありましたか?)。ここに私が持っているものがあります:

CMakeLists.txt

チュートリアル.cpp

a.py

a.py を実行すると、コメント アウトするか!ostr << 1 << "\n";に置き換えない限りクラッシュします。ostr << "1" << "\n";

ビルドして実行:

スタック トレース (実行後gdb --args python a.py):

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

python - boost.python 引数の型の不一致 (numpy.int64 -> int)

私はこの問題に遭遇しています:

十分に近いようですか?

いくつかの置換を行った後、中間の引数が問題のようです。numpy.int64 を int に変換するにはどうすればよいですか?

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

c++ - Boost.Pythonを使用して、PILからロードされた画像をC++関数に渡す方法はありますか?

Python で C++ クラスを使用するラッパーを作成しようとしていますが、既に Python プログラムにロードしたこのイメージを渡す方法が見つかりません。

イメージへのパスを渡して C++ 関数内に再度ロードすることはできますが、それは私が望む解決策ではありません。

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

xcode - Xcode でのブースト python のリンカの問題

ブースト 1.45.0 をダウンロードし、Mac に Python 3.1.3 をインストールしました。Python で Boost をビルドすることに成功しました。このために、「project-config.jam」を編集し、「using python : 3.1 : /Library/Frameworks/Python.framework/Versions/3.1;」を追加する必要がありました。それに。

この時点で、すべて問題ないようです。

xcode プロジェクトでこのライブラリを使用しようとすると、リンク エラーが発生します。

未定義のシンボル: "boost::python::objects::make_nurse_and_patient(_object*, _object*)"、参照元: _object* boost::python::with_custodian_and_ward_postcall<0ul, 1ul, boost::python::default_call_policies>:: postcall<_object*>(_object* const&, _object*)in libFluxCore.a(Python.o) "boost::python::objects::enum_base::enum_base(char const*, _object* ( )(void const ), void* (*)(_object*), void (*)(_object*, boost::python::converter::rvalue_from_python_stage1_data*), boost::python::type_info, char const*)", 参照元: サンドボックス: libFluxCore.a(Python.o) の :BindComponentState() サンドボックス::libFluxCore.a(Python.o) の BindCallOptions() libFluxCore.a(Python.o) のサンドボックス::BindFrameRate()

そしてもっとたくさん...

私のプロジェクトでは、パスとライブラリが適切に設定されています。

誰かが何が起こるかについて考えを持っていますか? ありがとう。

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

python-3.x - Boost Python の例は 2 回失敗しました

次の組み合わせを使用しようとしたのは私だけですか: boost_1_45_0, MSVC 10, Python31 ?

ブーストからの基本的なサンプル (boost_1_45_0\libs\python\example\quickstart\embedding.cpp) がコンパイルされていないことを発見しました (修正方法は以下を参照)。コンパイル時の問題:

正しい名前はinitembedded_hello ではなくinit_module_embedded_helloであることを発見しました。私の最初の質問は、この名前の変更について正しいですか?

2 番目の問題はSystemError: NULL result without error in PyObject_Call、宣言したモジュールをインポートするときです。

インポートをコメントアウトすると、内部の python のモジュール (io など) が正常に動作することがわかります。では、2 番目の質問は、インポートの問題は何ですか?

どんな助けでも大歓迎です!

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

c++ - Python オブジェクトから C++ へのポインタの問題

これは私の最初の投稿です:)。Python 拡張オブジェクトを C++ ポインタに変換できましたが、問題があります。最初に私のコードを示し、次に問題を説明します。

これは私のクラスです:

ブースト ラッピング:

Python コード (hello.py):

そしてメインファイル:

アプリケーションを実行すると、「This is a Hello World!!!」という画面が表示されます。私の期待通りに。それで、問題は何ですか?Python コードを次のように変更するとします。

次に、アプリケーションを再度実行すると、次の行でエラーが発生したためクラッシュします。

ベースが NULL であるためです。

より正確には、エラーは「アクセス違反の読み取り場所 0xblablabla」です。デバッグすると、デバッガーは関数で停止します (Boost または Python コードだと思います)

どう思いますか???

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

python - boost.pythonオブジェクトをコピーする

いくつかのブーストPythonクラスがあり、Pythonでインスタンス化します。それらをコピーしたい。だから、私が持っている場合

私はやってみたいです

しかし、pのタイプがわからない場合はどうなりますか?私はこれをやろうとしました:

しかし、Pythonはpを漬けることができないと言いました。

Is my only solution to add a clone() function to the interface of Bernoulli? Or can I have that method automatically generated somehow? Can copy.deepcopy be made to work with Boost.python objects?