問題タブ [extension-modules]
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 - 拡張モジュール: void * を bytearray にマーシャリング (および/またはその逆)
データを準備するためにpython
(手段) を使用していくつかの実験を行う(また、それらを有線に送信する - SPI) ことは、遅い (システムが限られている) ことを示しています。そこで、重要な部分を延期するために、組み込みpython3
の拡張モジュールを作成することを考えていました。C
次のいずれかを希望します。
python
スクリプトは、拡張モジュールで作成されたメモリ ブロックにアクセスでき、できれmalloc()
ば透過的に変換できます。bytearray
- 拡張モジュールは、できれば透過的に変換可能
bytearray
で作成されたオブジェクトへのポインターを取得しますpython
void *
python
目標は、 (as としてbytearray
) と拡張モジュール (asとして)の両方からアクセスできるゼロ変換メモリ ブロックとしてもゼロ コピーを持つことですvoid *
。
これを達成する方法はありますか?
python - Python 拡張モジュールの C コードから組み込み関数 (またはメソッド) を呼び出す方法は?
私が現在達成したいのは、返された組み合わせをソートすることを目的として、Pythonitertools
モジュール関数を微調整combinations
して、渡されたものをソートしてiterable
から組み合わせを作成することです。
私は初めて Python 拡張モジュールに取り組んでおり、これまでの唯一の経験は、Python 拡張モジュールのような "Hello World" を作成してコンパイルすることでしたが、いくつかのプログラミング言語での私の全体的なプログラミング経験が、この挑戦を成功させるために築き上げるのに十分な強固な基盤。
sorted()
渡された iterable をソートできる組み込みの Python 関数があることは知ってcombinations
いますが、拡張モジュールの C コード内から呼び出す方法がわかりません。
私はちょうど書き込もうとしましiterable = sorted(iterable);
たが、モジュールがコンパイルされても(警告付きで)、コンパイルされたモジュールのインポートは失敗しますImportError: cgitertools.cpython-36m-x86_64-linux-gnu.so: undefined symbol: sorted
私の質問は:
sorted()
Python 拡張モジュールの C コード内から(例として使用して) Pythons 組み込みメソッドを呼び出す方法は?
私が試したことと、それがうまくいかなかった理由のすべての詳細の下に: