問題タブ [python-c-extension]

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

python - PythonにインポートしたときにC関数のstdoutをリダイレクトする際の問題

printf を使用して stdout に出力する単純な C モジュールを作成しました。

後で、Python プログラムでもSWIG使用できるように、これを使用してラッパーを作成しました。func_printこのプログラムでは、stdout を textctrl ウィジェットにリダイレクトしました。期待どおり、使用してprint印刷したものはすべて、textctrl ウィジェットに正しく印刷されます。

ただし、func_print()(sample.py から) C 関数を呼び出すと、textctrl ウィジェットではなく端末に出力されます。

どういうわけか、stdoutC モジュールの for 関数が期待どおりにリダイレクトされないようです。これを修正するのを手伝ってください。ありがとうございました。

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

gcc - 「...アーキテクチャタイプを理解できません...」PythonC拡張機能をgccでコンパイルするときの問題

Snow LeopardからLionにアップグレードしたところ、更新しなければならなかった古いpythonc-extensionが正しくコンパイルされたくありませんでした。私はここで何をすべきか本当にわかりません。コンパイルがうまくいくように私を助けてくれる人はいますか?SnowLeopardで問題なくコンパイルされました。

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

python - コンパイラがPython.hを見つけることができません

私はCに少し慣れていないので、やりたいことができないようです。C関数用にPythonバインディングを作成する必要がありますが、これは理解できると思います。しかし、機能しない小さな行が1つあります。

私はこれを手に入れます:

私はすべてを試しました。最初に、Python.hをプロジェクトと同じフォルダーに貼り付けました。次に、ファイル名をリンカーの下のライブラリファイルとオブジェクトファイルに入れます。次に、python31.libで同じことを行い、次にpython31.libがあるディレクトリをPATH変数に配置しました。この境界線を越えることはできません。Linuxの場合はネット上に多くのソリューションがありますが、Windowsの場合はありません。助けてください!

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

python - Python: PyDateTime_FromTimestamp の使用法

私はpython c-extensionに取り組んでおり、UNIXタイムスタンプを持つpython datetimeオブジェクトのインスタンスを作成したいと考えています。

ドキュメント サイト ( http://docs.python.org/c-api/datetime.html ) で、入力パラメーターに基づいて新しい参照を返す関数 PyDateTime_FromTimestamp() を見つけました。

説明は次のとおりです 。datetime.datetime.fromtimestamp() に渡すのに適した引数タプルを指定して、新しい datetime.datetime オブジェクトを作成して返します。

PyFloat_Object を使用して関数を呼び出そうとしましたが、関数は常に NULL を返します (単純に 0 を入力しても)。

誰かが関数を呼び出す方法の例を持っていますか、それを機能させるためにどのような種類のパラメータータプルが必要かヒントを与えることができますか?

ありがとう!

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

generator - ジェネレーター機能を Python/C クラスに追加する

Python/C API を使用して C でクラスを作成しました。C BLOB のデータ項目を反復処理する必要があります。長さが 50K を超えるため、PyList を返すことは望ましくありません。ジェネレータのような機能を提供する方法はありますか?

私の 1 つの解決策は、クラスを別の純粋な python クラスでラップし、そのレベルでジェネレーター関数を記述することです。別の方法はありますか?

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

python - OpenMP を使用する Python 拡張機能をインポートした後に PyQt4 ウィンドウを表示するとクラッシュする

私も自分で開発したC拡張モジュールを使用するpythonアプリケーションを開発しています。拡張モジュールは、いくつかの重い計算処理を行い、OpenMP を利用します。最近、PyQt4 を使用して、いくつかの GUI コンポーネントを Python アプリケーションに追加していました。ただし、ウィンドウを表示すると、ウィンドウが完全に描画される前にアプリケーションがクラッシュします (ウィンドウはすぐに表示されます)。私は問題を追跡することができました: OpenMP サポートなしで数値処理を行う C 拡張をコンパイルすると、ウィンドウは正常に表示され、すべてが機能します。OpenMP と Qt の間のスレッド処理に関係があると思います。誰かが同じような観察をしたことがありますか?

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

python - 参照によって引数を渡すPythonC拡張機能

プロトタイプがである関数(libFunc)のPythonCラッパーを書き込もうとしています。

PyArg_ParseTupleを使用して、関数呼び出しの引数を設定するにはどうすればよいですか。これが私が現在持っているものです

byrefを使用してctypesでも同じことができます。

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

python - c-extension での python ロギング モジュールの使用

私はpythonスクリプトに取り組んでおり、ログファイルに情報を書き込むためにpythonロギングモジュールを使用しています(http://docs.python.org/howto/logging.htmlを参照)。

これは小さな例です(これも前述のページから):

今、私は自分のプログラムにインポートしたいPython用のc拡張を作成したいと考えています。

問題は、C コードからログ ファイルに情報を書き込むにはどうすればよいかということです。Python c-extension から logging-module を使用する方法はありますか?

コメントありがとうございます!

0 投票する
4 に答える
2789 参照

python - GILをリリースするための費用はいくらですか?

Pythonインタープリターから完全に独立した何かを行うC拡張関数があるとしましょう。GILをリリースしない理由はありますか?

たとえば、このようなコードを書かない理由はありますか(読みやすさやマイクロ最適化の回避などの問題は別として、重要ですが、私の質問にはあまり関係ありません)?

明らかに、これはパフォーマンスがそれほど重要ではない些細なコードです。しかし、ここでGILをリリースしないパフォーマンス上の理由はありますか?または、GILは、CPUを集中的に使用するコードに対してのみリリースする必要がありますか?

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

python - ImportError: モジュール名がありません

したがって、PyDev で IronPython を使用しており、numpy をインポートしようとしています。ただし、次のエラーが発生した場合:

multiarray.pydファイルではなくファイルしかないからmultiarray.pyですか?これについて何ができますか?前もって感謝します。

編集: もう 1 つ、インポート numpy は、python ダウンロードに付属する Python IDLE で使用すると機能し、Windows 7 を使用しています。