問題タブ [python-bindings]

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 に答える
898 参照

python - ShibokenによるC++ライブラリのpythonバインディング生成

wiki http://qt-project.org/wiki/PySide_Binding_Generation_Tutorialでチュートリアルをフォローしましたが、 正しく動作させることができません。私はMacOSXを使っています

これまでのところ、私がやったことは次のとおりです。

  • FooLib をビルド (静的) ---> libFooLib.a
  • typesystem_foo.xml を作成します。
  • 次のコマンドで shiboken を実行します。

    shiboken-2.7 global.h --include-paths=.:/opt/local/include/PySide-2.7:/opt/local/include --typesystem-paths=/opt/local/share/PySide-2.7/typesystems - -output-directory=../FooLibBinding typesystem_foo.xml

  • 生成された c++ コードから FooLibBinding 動的ライブラリを構築します --> libFooLibBinding.dylib

コマンドラインから Python インタープリターを実行する代わりに、Python インタープリターをロードし、FooLib を使用して .py スクリプトを開く C++ プログラムを作成しました。このプログラムは libFooLibBinding.dylib に対して動的にリンクしているため、foolib モジュールが機能するために必要なすべてのシンボルがそこにあると思います;)

コードは次のとおりです。

プログラムを実行するとき、最初にモジュールをロードしようとすると、次のように言って失敗します: ImportError: No module namedfoolib

そして、.py スクリプトを実行するときに 2 回目:

したがって、バインディングから生成されたモジュールが見つからないことは明らかです。私の質問は、それを見つけることができるようにするにはどうすればよいですか?

チュートリアルでは Makefile を使用していますが、バインディング ダイナミック ライブラリをリンクするだけではないようです。

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

python - Python OpenCVバインディングでxfeatures2dをインポートできません

Pythonでopencv 3からSIFTおよびSURF機能にアクセスしようとしています。他の人が示唆したように、opencv_contrib のインストールに従いました。インストールのログの一部は次のとおりです。

その後、Pythonでcv2をインポートしましたが、xfeatures2dをインポートできませんでした。

どんな手掛かり?

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

selenium-webdriver - Selenium の Python バインディングで java.awt.Robot & java.awt.event.KeyEvent をインポートする方法とその使用例

セットアップ:Selenium 2.45.0、IEserver driver2.45.0(x86)、python 2.7.9、window 7 64ビットのpythonバインディング

問題: Web アプリケーションでセキュリティ ベースの Windows ポップアップ (OS) を処理しようとしています (パスワードを入力して [OK] をクリックします)。

試してみた 1.この作業のようなアラート処理、パスワードを入力できる

しかし、今では次のことが機能しません。[OK] をクリックすることも ENETER を押すこともできません。

2.Autoit、使いたくない、最後のオプションになります

3.ロボットクラスを使用するようないくつかの解決策を見ました

私は Java が初めてで、これらのパッケージを python bindings にインポートする方法がわかりません。これがセレンでの方法です。

Selenium の Python バインディングで上記のパッケージをインポートする方法を知りたい場合、いくつかの実用的な例を次に示します。

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

python - 「バージョン 1.5.0 以降の Subversion Python バインディングが必要です」を使用して mailer.py

ユーザーがApache Mailer スクリプト(mailer.py)を使用してフックを介して SVN リポジトリ内の要素をロック/ロック解除したときに、メールを送信しようとしています。適切なフックが実行されると、次のエラーが発生します。

バージョン 1.5.0 以降の Subversion Python バインディングが必要です。

次のツールをインストールしました。

  • VisualSVN 3.3.1 (サブバージョン 1.8.13)
  • Python 3.5.1 (32 ビット版と 64 ビット版で試しました)
  • Python SVN 拡張機能 (pysvn) v1.8 (Python v3.5 および SVN 1.8.14 用)

さらに、Subversion 1.8.13 のソース コードを入手できます。

適切なフック (post-lock.cmd) には、次の固有の行があります。

PYTHONPATH を次のように構成しました。

上記の構成はすべて、前述のエラーを引き起こします。

1.5.0 の Python Subversion バインディングを入手できる場所と、エラーなしでメーラー スクリプトを実行できるように設定する方法を教えてください。

よろしくお願いします。

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

c++ - boost::geometry::Point アクセサーをラップする Cythonic の方法

a の次のメンバー関数をラップする正しい cythonic の方法は何boost::geometry::Pointですか? コード スニペットはhereから取得されます。

私は最初に使用しようとしました:

しかし、次のようなことから、どこに行けばよいかわかりません。

私にこの失敗を与えます:

私の現在の実用的な解決策は、次のようなヘルパー関数を作成することです。

誰かがよりエレガントなソリューションを考えていますか?

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

python - opencv ソースの変更後に Python バインディング cv2.so を更新する

オブジェクト検出用の opencv カスケード分類器のソース コードを変更して、新しい機能を組み込みました。分類器のトレーニングを担当する opencv_createsamples と opencv_traincascade のソース コードに変更を加えました。次に、検出器ライブラリであるカスケード分類器の detectMultiScale にも同様の変更を加えました。最初の 2 つは実行可能ファイルですが、検出器は opencv ライブラリとしてコンパイルされます。ライブラリのソース コードが変更されたため、C/C++ ライブラリを Python メソッドにリンクする Python ラッパー cv2.so が壊れているようです。ソースを指す cv2.so 内に保存されているシンボルのセットは、変更のために同じではなくなったため、cv2 をインポートすると次のエラーが発生します。

ImportError: /usr/local/lib/python2.7/dist-packages/cv2.so: 未定義のシンボル: _ZN2cv17CascadeClassifier16detectMultiScaleERKNS_11_InputArrayERSt6vectorINS_5Rect_IiEESaIS6_EEdiiNS_5Size_IiEESB_

Python バインディングを更新して cv2.so を更新し、変更を反映するにはどうすればよいですか? どんな助けでも大歓迎です。ありがとう。

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

python - C++ プログラム内の関数の Python バインディング

それ自体で機能する C++ で書かれたプログラムがありますが、Python からアクセスできるようにしたいと考えています。具体的には、C++ でより効率的な関数がいくつかありますが、Python スクリプトを使用して、出力に対して他の多くのことを行います。Python で行うには面倒な Boost のルート検索アルゴリズムやその他の機能を使用するため、Python で main() 全体を書き直したくありません。

c++ main() を維持しながら、これらの関数に Python バインディングを追加することは可能ですか? 以前に Python バインディングを行ったことはありませんが、既に Boost を使用しているため、 Boost.pythonを見てきました。ほとんどの例では、c++ 関数/クラスを hpp ファイルで使用し、それらを Python プログラムに埋め込んでいますが、これはまさに私たちが望んでいるものではありません。

私たちが望むのは、C++ プログラムをスタンドアロンとして維持し、ユーザーが必要に応じてそのまま実行できるようにすることと、ユーザーが Python プログラムからこれらの関数を呼び出せるようにすることです。同じ Makefile と exe を使用できるのは素晴らしいことです。バインドされた関数を含む別の C++ ライブラリを実際に作成する必要はありません。これらの便利な関数へのアクセスを許可するだけで、Pythonic バージョンのコードを作成することに関心はありません。

ありがとう