問題タブ [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.
python - PythonにインポートしたときにC関数のstdoutをリダイレクトする際の問題
printf を使用して stdout に出力する単純な C モジュールを作成しました。
後で、Python プログラムでもSWIG
使用できるように、これを使用してラッパーを作成しました。func_print
このプログラムでは、stdout を textctrl ウィジェットにリダイレクトしました。期待どおり、使用してprint
印刷したものはすべて、textctrl ウィジェットに正しく印刷されます。
ただし、func_print()
(sample.py から) C 関数を呼び出すと、textctrl ウィジェットではなく端末に出力されます。
どういうわけか、stdout
C モジュールの for 関数が期待どおりにリダイレクトされないようです。これを修正するのを手伝ってください。ありがとうございました。
gcc - 「...アーキテクチャタイプを理解できません...」PythonC拡張機能をgccでコンパイルするときの問題
Snow LeopardからLionにアップグレードしたところ、更新しなければならなかった古いpythonc-extensionが正しくコンパイルされたくありませんでした。私はここで何をすべきか本当にわかりません。コンパイルがうまくいくように私を助けてくれる人はいますか?SnowLeopardで問題なくコンパイルされました。
python - コンパイラがPython.hを見つけることができません
私はCに少し慣れていないので、やりたいことができないようです。C関数用にPythonバインディングを作成する必要がありますが、これは理解できると思います。しかし、機能しない小さな行が1つあります。
私はこれを手に入れます:
私はすべてを試しました。最初に、Python.hをプロジェクトと同じフォルダーに貼り付けました。次に、ファイル名をリンカーの下のライブラリファイルとオブジェクトファイルに入れます。次に、python31.libで同じことを行い、次にpython31.libがあるディレクトリをPATH変数に配置しました。この境界線を越えることはできません。Linuxの場合はネット上に多くのソリューションがありますが、Windowsの場合はありません。助けてください!
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 を入力しても)。
誰かが関数を呼び出す方法の例を持っていますか、それを機能させるためにどのような種類のパラメータータプルが必要かヒントを与えることができますか?
ありがとう!
generator - ジェネレーター機能を Python/C クラスに追加する
Python/C API を使用して C でクラスを作成しました。C BLOB のデータ項目を反復処理する必要があります。長さが 50K を超えるため、PyList を返すことは望ましくありません。ジェネレータのような機能を提供する方法はありますか?
私の 1 つの解決策は、クラスを別の純粋な python クラスでラップし、そのレベルでジェネレーター関数を記述することです。別の方法はありますか?
python - OpenMP を使用する Python 拡張機能をインポートした後に PyQt4 ウィンドウを表示するとクラッシュする
私も自分で開発したC拡張モジュールを使用するpythonアプリケーションを開発しています。拡張モジュールは、いくつかの重い計算処理を行い、OpenMP を利用します。最近、PyQt4 を使用して、いくつかの GUI コンポーネントを Python アプリケーションに追加していました。ただし、ウィンドウを表示すると、ウィンドウが完全に描画される前にアプリケーションがクラッシュします (ウィンドウはすぐに表示されます)。私は問題を追跡することができました: OpenMP サポートなしで数値処理を行う C 拡張をコンパイルすると、ウィンドウは正常に表示され、すべてが機能します。OpenMP と Qt の間のスレッド処理に関係があると思います。誰かが同じような観察をしたことがありますか?
python - 参照によって引数を渡すPythonC拡張機能
プロトタイプがである関数(libFunc)のPythonCラッパーを書き込もうとしています。
PyArg_ParseTupleを使用して、関数呼び出しの引数を設定するにはどうすればよいですか。これが私が現在持っているものです
byrefを使用してctypesでも同じことができます。
python - c-extension での python ロギング モジュールの使用
私はpythonスクリプトに取り組んでおり、ログファイルに情報を書き込むためにpythonロギングモジュールを使用しています(http://docs.python.org/howto/logging.htmlを参照)。
これは小さな例です(これも前述のページから):
今、私は自分のプログラムにインポートしたいPython用のc拡張を作成したいと考えています。
問題は、C コードからログ ファイルに情報を書き込むにはどうすればよいかということです。Python c-extension から logging-module を使用する方法はありますか?
コメントありがとうございます!
python - GILをリリースするための費用はいくらですか?
Pythonインタープリターから完全に独立した何かを行うC拡張関数があるとしましょう。GILをリリースしない理由はありますか?
たとえば、このようなコードを書かない理由はありますか(読みやすさやマイクロ最適化の回避などの問題は別として、重要ですが、私の質問にはあまり関係ありません)?
明らかに、これはパフォーマンスがそれほど重要ではない些細なコードです。しかし、ここでGILをリリースしないパフォーマンス上の理由はありますか?または、GILは、CPUを集中的に使用するコードに対してのみリリースする必要がありますか?
python - ImportError: モジュール名がありません
したがって、PyDev で IronPython を使用しており、numpy をインポートしようとしています。ただし、次のエラーが発生した場合:
multiarray.pyd
ファイルではなくファイルしかないからmultiarray.py
ですか?これについて何ができますか?前もって感謝します。
編集: もう 1 つ、インポート numpy は、python ダウンロードに付属する Python IDLE で使用すると機能し、Windows 7 を使用しています。