問題タブ [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.
c++ - C++からPython関数を呼び出す
C++からPython関数を呼び出そうとしています。関数ポインタで実現できると思いましたが、実現できないようです。私はboost.python
これを達成するために使用しています。
Pythonで定義された関数があるとしましょう:
次に、この関数をC ++に渡して、そこから呼び出すことができるようにする必要があります。これを実現するために使用してC++側でコードを作成するにはどうすればよいboost.python
ですか?
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() ラッパーを記述するよりも、これを処理するためのより良い方法はありますか?
c++ - boost.pythonを使用する場合のC++ストリームの何が問題になっていますか?
更新2:なぜこれがまだ賛成されているのかわかりません(2014年3月)。私が何年も前にこの質問をしたので、これは修正されたようです。最新バージョンのブーストを使用していることを確認してください。
更新:おそらく、数値をフォーマットするためにC ++ストリームを初期化する必要があり、共有ライブラリがPythonにロードされているときに初期化が行われていませんか?
呼んでいます
boost.pythonを介して共有ライブラリにエクスポートされるメソッド内。何も印刷されませんが、印刷すると
できます。
私はこれをしたいので、これは重要です:
私はこれを行うことによってそれを公開しました:
しかしstr
、ベルヌーイオブジェクトでPythonのメソッドを呼び出すと、何も得られません。より単純なcoutの問題が関係しているのではないかと思います。
python - C++ ストリームを使用して数値をシリアル化すると、Mac で boost.python がクラッシュする
リンクに問題があると思います (Mac で実行していて、ライブラリをモジュールに変更する必要がありましたか?)。ここに私が持っているものがあります:
CMakeLists.txt
チュートリアル.cpp
a.py
a.py を実行すると、コメント アウトするか!ostr << 1 << "\n";
に置き換えない限りクラッシュします。ostr << "1" << "\n";
ビルドして実行:
スタック トレース (実行後gdb --args python a.py
):
python - boost.python 引数の型の不一致 (numpy.int64 -> int)
私はこの問題に遭遇しています:
十分に近いようですか?
いくつかの置換を行った後、中間の引数が問題のようです。numpy.int64 を int に変換するにはどうすればよいですか?
c++ - Boost.Pythonを使用して、PILからロードされた画像をC++関数に渡す方法はありますか?
Python で C++ クラスを使用するラッパーを作成しようとしていますが、既に Python プログラムにロードしたこのイメージを渡す方法が見つかりません。
イメージへのパスを渡して C++ 関数内に再度ロードすることはできますが、それは私が望む解決策ではありません。
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()
そしてもっとたくさん...
私のプロジェクトでは、パスとライブラリが適切に設定されています。
誰かが何が起こるかについて考えを持っていますか? ありがとう。
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 番目の質問は、インポートの問題は何ですか?
どんな助けでも大歓迎です!
c++ - Python オブジェクトから C++ へのポインタの問題
これは私の最初の投稿です:)。Python 拡張オブジェクトを C++ ポインタに変換できましたが、問題があります。最初に私のコードを示し、次に問題を説明します。
これは私のクラスです:
ブースト ラッピング:
Python コード (hello.py):
そしてメインファイル:
アプリケーションを実行すると、「This is a Hello World!!!」という画面が表示されます。私の期待通りに。それで、問題は何ですか?Python コードを次のように変更するとします。
次に、アプリケーションを再度実行すると、次の行でエラーが発生したためクラッシュします。
ベースが NULL であるためです。
より正確には、エラーは「アクセス違反の読み取り場所 0xblablabla」です。デバッグすると、デバッガーは関数で停止します (Boost または Python コードだと思います)
どう思いますか???
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?