問題タブ [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 に答える
4556 参照

c# - Python バインディングを C# に追加するには?

Python から C を呼び出したい場合は、次のようなモジュールを記述します。

http://docs.python.org/extending/extending.html

さて、質問があります:

Python で使用するモジュールを C# で作成したいと考えています。

C# をネイティブ Python と対話させるにはどうすればよいですか?
(注: Python.NET や IronPython には興味がありません)。

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

python - Cython バイトから C char*

Python 3 で使用できるように、CPython に Cython 拡張機能を記述して mcrypt ライブラリをラップしようとしています。

失敗しているコードは次のとおりです。

ここで、Cython のドキュメントを理解しているように、3 行目の割り当ては、バッファーの内容 (Python 3 のオブジェクト) を C 文字列ポインターにコピーする必要があります。これは、メモリを割り当てることも意味すると思いますが、この変更を行ったとき:

それはまだセグメンテーション違反でクラッシュしました。mcrypt_generic の内部でクラッシュしていますが、プレーンな C コードを使用すると問題なく動作させることができるため、Cython がここで C データをどのように処理しているかについてよく理解していないことがあるはずです。

助けてくれてありがとう!

ETA : 問題は私の側のバグでした。私はあまりにも多くの時間起きていた後にこれに取り組んでいました (それは私たち全員がある時点で行ったことではありませんか?) と、何かばかげたことを見逃していました。私が今持っているコードは次のとおりです。

暗号化を行うためのコピーを作成し、次に戻り値への 2 番目のコピーを作成するため、これはおそらく世界で最も効率的なコードではありません。ただし、それを回避できるかどうかはわかりません。新しく割り当てられたバッファを取り、それをバイト文字列としてインプレースで Python に返すことができるかどうかわからないからです。しかし、機能する機能ができたので、ブロックごとの方法も実装して、暗号化または復号化のために反復可能なブロックを提供し、ソース全体がなくても実行できるようにします一度にすべての宛先をメモリ内に保存する---そうすれば、任意の時点で最大3つのコピーをメモリに保持することを心配することなく、巨大なファイルを暗号化/復号化できます...

助けてくれてありがとう、みんな!

0 投票する
2 に答える
884 参照

python - ブロックしてPythonにコールバックする可能性のあるC関数の前にGILを解放することは可能ですか?

ブロッキング操作 (選択) を実行し、着信メッセージを処理する C 関数をラップしています。私の理解では、C 関数がブロックされる場合、他のスレッドの実行を許可しながらそれを呼び出す正しい方法は次のとおりです。

ただし、この関数がパラメーターとしてコールバック ポインターを受け取ることがあります。このコールバックは、C 関数によって前処理された受信メッセージを処理する際に呼び出されます。このコールバックを を呼び出す関数にラップすることに成功PyEval_CallObject()し、Python コールバックを渡すことができました。

スレッドのサポートを追加しているので、同時にできるかどうか疑問に思っています:

  • このブロッキング操作を呼び出す前に GIL を解放してください。
  • このブロッキング操作で安全に Python インタープリターにコールバックします。

これは問題を引き起こしますか?もしそうなら、それを回避する方法はありますか?

ありがとう。

0 投票する
2 に答える
139 参照

swig - バインディングソフトウェア

SWIG以外にLanguageBindings用のソフトウェアはありますか?また、どれが最も効率的ですか?C++からPythonへのバインディングの効率を探しています。

0 投票する
2 に答える
1601 参照

swig - PyPy-SWIG-QuickFixミックス

PyPyには、特にCPython C APIに関して、いくつかの互換性の制限があります。

プリコンパイルされたSWIGバインディングに付属するQuickFixパッケージを使用しており、PyPyでの使用を検討しています。私はCAPIとSWIGに精通していないので、私の質問は次のとおりです。

  • PyPyのCAPI互換性の制限は、SWIGでの動作を妨げますか?理由を説明していただけますか?
  • 特にPyPyで動作するには、SWIGバインディングを再コンパイルする必要がありますか?それは可能ですか?どのように?
0 投票する
3 に答える
6085 参照

vlc - VLC の Python バインディングを使用して単一のムービーを繰り返す: psz_name とは

1 つのムービー ファイルを動的に繰り返し再生する小さなアプリケーションを作成しようとしています。これらのVLC-Pythonバインディングを使用して、Pythonで作成しました

これはそれほど難しいことではないと思います。ドキュメントが非常にまばらですが、画面に何も表示されずに映画をフルスクリーンで表示したり、再生したいファイルを変更したりすることもできます。私ができないのは、単純に 1 つの映画を繰り返すことです。

次のコードを使用します。

--repeat-tag ここに:

ここに「--repeat」タグ:
self.media = self.vlc_inst.media_new(NEW_VIDEO_NAME + str(currentVideoN) + VIDEO_EXTENSION, '--repeat')

これらの繰り返しタグは何もしていないようです。Instanceクラスには関数vlm_set_loop (self, psz_name, b_loop)がありますが、mrl がどうあるべきかわかりません。元のコードでは、char-array (文字列) である必要があることがわかりましたが、これがどのような文字列であるべきかわかりません。

手がかりを持っている人はいますか?

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

python - CollabNet の python svn バインディングの代替手段は何ですか?

CollabNetが提供するpython svnバインディングの代替手段は何ですか? 問題は、Python で Windows バージョンを実行するように構成できないことです。さまざまなフォーラムで書かれたことを実行しましたが、うまくいきませんでした。

せいぜい完全に python で書かれたパッケージです - コンパイルの問題はありません。私はpysvnを知っていますが、サーバー側 ( svnlookなどの提供されたリポジトリ パスに基づく) ではなく、クライアント側の機能 (チェックアウトされたコードに基づく) があるようです。

0 投票する
2 に答える
852 参照

python - Quickfix-Pythonでシーケンス番号を設定する

Quickfixに付属しているPythonバインディングを使用しており、シーケンス番号を設定したいと思います(理由を参照)。これどうやってするの?

SWIGバインディングで次のことがわかりました。

Sessionオブジェクトとintシーケンス番号の2つのパラメータが必要です。オブジェクト
を取得するにはどうすればよいですか?または、シーケンス番号を設定する別の方法はありますか?Session

0 投票する
2 に答える
93320 参照

python - Selenium と Python のバインディングを使用してマウスオーバー (要素の上にカーソルを合わせる) を実行する方法はありますか?

hereを読むと、メソッドを持つRenderedWebElementクラスがあったようです。hoverただし、これは Java 専用に作成されたものであり (Python バインディングのドキュメントを検索しても役に立ちませんでした)、Java では非推奨になりました。

Aは、オブジェクトを使用して実行することも、オブジェクトを使用してhover実行することもできません。action_chainsWebElement

Pythonでこれを行う方法についてのアイデアはありますか? 私はここにいましたが、使用RenderedWebElementしているため、あまり役に立ちません。

私が使用している: Python 2.7、Windows Vista、Selenium 2、Python バインディング

編集:オブジェクトのメソッドmouse_overはありselenium.selenium.seleniumますが、スタンドアロン サーバーが既に実行されていないとインスタンスを作成する方法がわかりません。

編集私のように誤解がある場合に備えて、回答としてマークされた返信のコメントを確認してください。

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

python - Python - Selenium2では、タイムアウト例外を与える前に、ページをロードするときにwebdriverインスタンスが待機する時間を設定する方法は?

以下に示すように、タイムアウトを3番目のパラメーターとして使用してWebドライバーをインスタンス化することで試しました。

次に、ドライバーを使用してWebページを取得しました

ただし、ページが読み込まれるまで無期限に待機します。WebDriverWait(self.driver, 3)self.driver が webdriver インスタンスである場所も試してみましたが、役に立ちませんでした。

OS-Windows Vista ; Python 2.7; セレン2; Python-Selenium バインディング 2.8

何か案は?

EDIT:Pythonには存在しないようで、同じリクエストがすでに入れられています