問題タブ [pyobject]
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 - C++ での継承によるカスタム PyObject
長期の python プログラマーであり、初めての C++ 拡張機能ライターです。とにかく、楽しみのために、C++ で Python 用のリンク リスト モジュールを作成しようとしています。これが私のコードです
これはできますか?ほとんどのドキュメントは C 用ですが、PyObject から継承してこのように返すことはできますか? 現在機能しているのは次のとおりです。
しかし、Python を呼び出すとすぐにl.get_value()
、segfault が発生します。私がやっていることはおそらく間違っていることを知っているので、誰かが私を正しい方向に向けてくれますか?
LinkedList<char*>
明確にするために、関数の実行後に「ll」という名前が破棄されることを知ってlinkedlist_new
います。これは、私が抱えている問題の一部です。私が非常に、非常に迷っているとしましょう...
julia - Julia: PyObject を配列に変換する
Julia では、Python モジュール pandas_datareader を呼び出して、Web からデータをダウンロードしています。
変数 gdp は PyObject オブジェクトです。そのため、それを操作することはできません (たとえば、ログを取ります)。配列に変換するにはどうすればよいですか? convert(Array{Float64,2},gdp) を試しましたが、ジュリアがクラッシュするだけです。
ありがとう!
python - Py_BuildValue() を使用して C でタプルのリストを作成する
Py_BuildValue()
Cでタプルのリストを作成するために使用しようとしています.
私が構築しようとしているものは次のようになります。
コンパイル時に作成するタプルの量がわからないので、ここでは静的量を使用できません。
基本的Py_BuildValue()
に、ここで 1 つのタプルを使用すると、コードは次のようになります。
しかし、それは 1 つのタプルだけです。forループを介して追加できるリストに複数のタプルが必要です。どうすればこれを達成できますか?
python - Python オブジェクト ポインタ データへのアクセス
set
処理したい均一な型のハッシュ不可能な python オブジェクトのコレクションを含むpythonがあります。
uint64
アルゴリズムの効率を向上させるために、ctypes を使用して、データ値としてのみ受け入れる外部インデックスの実装と連携させたいと考えています。
Pythonオブジェクトへのポインタ参照をこの外部ライブラリに次のように渡すことができることを望んでいましたuint64
。
試しctypes.cast(ctypes.py_object(my_python_object), ctypes.c_uint64)
ましたが、取得していctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
ます。
また、逆に Python オブジェクトへの参照を取得し、uint64
それを「実際の」Python オブジェクトに変換する場合はどうでしょうか。
python - Python、Gtk3: 他のものの実行中にプログレス バーを脈動させる方法
クラスに基づいて、ボタンがクリックされるたびにbutton
とを含むウィンドウがあり、次の 2 つのことが発生するはずです。progressbar
1 - ダイアログパスから値を入力する必要があります
class ABCD
2 - 私たちのクラス
ABCD()
が彼の仕事をしている間、私たちのプログレスバーは、クラス ABCD() がプロセスを終了するまで定期的なパルスを行うべきです.
したがって、問題は、プログレスバーが一度だけパルスし、クラス ABCD() が終了するまでそこに留まり、後で定期的にパルスを開始することです。
これが私の試みです:
ここでわかるように、コードのこの部分ですでにパルスを作成してウィンドウを更新しようとしています
それ以外の場合
my class ABCD()
はtime.sleep(10)
、進行状況バーのパルスがその時間だけ 10 秒後に停止する必要があるためです。
このコードはどうあるべきか、私は誰かが私に正しいコードを提供する必要があります。
dynamic-memory-allocation - Python C 拡張機能 - 返された PyObject で Refcount = 1 にもかかわらずメモリ リークが発生する
Python C API を使用して、C++ で記述した Python モジュールを繰り返し呼び出しています。私のpythonプログラムはモジュールのpyParse
関数を繰り返し呼び出します。これは一連の処理を行い、より多くのオブジェクトを要素としてPyTuple
含むを返します。PyTuple
返されたすべてのオブジェクトは最終的PyObject->refcnt
に 1 になるため、オブジェクトが Python のスコープ外になったときにオブジェクトを削除する必要があることがわかります。次の Python コードのようなもので、このモジュールを繰り返し呼び出します。
このループが長く実行されるほど、メモリ使用量が急増します。反復ごとに約 2kb のタプルが生成されます (反復ごとに破棄する必要があります)。PyTuple_New
しかし、「ヒープ スナップショット」を取り、初期のスナップショットと別のスナップショットを後で比較すると、呼び出されたメモリの割り当てと他の Python オブジェクトが増加し続けていることがわかります。
しかし、返されたすべてのオブジェクトは参照カウントとして 1 を持っているため、Python でスコープ外に出た後に破棄されることが予想されます。最後に、私のプログラムread access violation
はコードのランダムな部分で終了します。足りないものはありますか?または、これをデバッグして、何が起こっているのかをよりよく理解する方法を知っている人はいますか? 私は絶望的です!
python - ld: 警告: _ffi_call_unix64 のコンパクト アンワインドを作成できませんでした: RBP または RSP ベースのフレームを使用しません アーキテクチャ x86_64 の未定義のシンボル:
hereから Python.framework を iOS に含めようとしています。
次のエラーが発生しました。
ld: 警告: _ffi_call_unix64 のコンパクト アンワインドを作成できませんでした: RBP または RSP ベースのフレームを使用しません アーキテクチャ x86_64 の未定義シンボル: "_adler32"、参照元: Python(zlibmodule.o) の _zlib_adler32 参照元: __pysqlite_func_callback Python(connection.o) の __pysqlite_step_callback Python(connection.o) の「_sqlite3_value_blob」から参照: Python(connection.o) の __pysqlite_build_py_params から参照: Python(connection.o) の __pysqlite_build_py_params 「_sqlite3_value_double」から参照: __pysqlite_build_py_params in Python(connection.o) "_sqlite3_value_int64"、参照先: __pysqlite_build_py_params in Python(connection.o) "_sqlite3_value_text" から参照: Python(connection.o) の __pysqlite_build_py_params "_sqlite3_value_type" から参照: Python(connection.o) の __pysqlite_build_py_params "_zlibVersion" から参照: Python(zlibmodule.o) の _PyInit_zlib ld: シンボルアーキテクチャ x86_64 の clang が見つかりません: エラー: リンカー コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)リンカ コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)リンカ コマンドが終了コード 1 で失敗しました (呼び出しを確認するには -v を使用してください)