問題タブ [python-c-api]
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 - PyTuple オブジェクトの解放
PyTuple
Python C-API を使用してオブジェクトを解放する適切な方法は何ですか?
挿入された要素への参照をPyTuple_SetItem
「盗む」ため、参照カウントのセマンティクスに関して言えば、タプルは多少特殊であることを私は知っています。また、タプル オブジェクトの参照を減らすと、タプル内のすべての要素の参照カウントが減ることもわかっています。
これを念頭に置いて、私は言うのが安全であるべきだと思います:
しかし、タプル参照カウントをデクリメントすると、最後の行でセグメンテーション違反が発生します。なぜこれが起こるのかわかりません。Py_DECREF
参照カウントの呼び出しの直前にある1
ので、ここで何が問題なのですか?
python - Python C API: PyEval_CallFunction?
Python C API で という名前のPyEval_CallFunction
便利な関数を発見しました。次のように言うことで、Python callable を呼び出すことができます。
ただし、この関数に関する公式ドキュメントは見つかりません。Google 検索では、この機能について説明しているさまざまな非公式のチュートリアルが表示されますが、次のようになります。
この関数は公式の Python ドキュメントに記載されていないため、パブリック API の一部であると想定されているものであるかどうかはわかりません。
Web を検索すると、一貫性のない使用ポリシーが見つかります。一部のチュートリアルでは、フォーマット文字列が型リストの周りに括弧が必要であることを示していますが
"(OiiO)"
、他の場合は括弧なしで使用されています。実際のプログラムで実際に関数を試してみると、括弧が必要なようです。そうしないと、segfault が発生します。
この機能は便利なので使ってみたいです。誰かがこれについて何か知っていますか、または文書化されていない理由を知っていますか? それはパブリック API の一部ですか?
python - 現在の PyInterpreterState を取得するにはどうすればよいですか?
PyThreadState
現在のスレッドには がないようですので、作成したいと思います。
現在の PyInterpreterState を に渡すにPyThreadState_New(...)
はどうすればよいですか、それとも Python からライブラリを呼び出すのではなく、インタープリターを埋め込んでいる (したがって作成した) 場合にのみ行うべきことですか?
python - C++ Python 埋め込み: Python のないマシンで実行しますか?
Python スクリプトをサポートする小さなゲームを作ろうとしています。Python C-API の使用に問題はありませんが、Python がインストールされていないコンピューターでゲームを確実に実行する方法がわかりません。
pythonXY.dll が必要なのはわかっています。他に何がありますか? プログラムを実行しようとすると、encodings.utf_8 が見つからないと表示されます。プログラムと同じディレクトリに encodings/utf_8.py ファイルをコピーしようとしましたが、それでもエラーが表示されます。
python - 上記のPython27/lib pyファイルなしでpython27.dllのロードを使用できないのはなぜですか
vc6 アプリケーションがあり、python27.dll を使用しています。
ランタイム環境に python27/lib/* ファイルがあれば問題ありません。
python27/lib/* ファイルがない場合、アプリケーションは終了します。
私はProcess Monitorを使用しており、プロセスが多くのpyをロードすることを監視しています。(os.pyのように...)
そして、vc6メッセージウィンドウに「Pythonはデフォルトのアクティベーションコンテキストを読み込めませんでした」というメッセージが表示されるのを見ました。( dl_nt.c のdll_mainで発生するメッセージをトレースします)
python27.dll を使用し、他の lib/files を使用しない方法....?
python23.dll を使用する前に、問題なく実行されます。
python - __slots__はPythonでどのように実装されていますか?
__slots__
Pythonでどのように実装されていますか?- これはCインターフェイスで公開されていますか?
__slots__
CでPythonクラスを定義するときに動作を取得するにはどうすればよいPyTypeObject
ですか?
python - __dict__を実装するCからPython型を作成しますか?
__dict__
「通常の」クラスのように作成された型は、Pythonで定義された場合どのように作成されますか?- sを使用した非動的タイプの例はあります
__dict__
か? - Pythonの
PyTypeObject
パススルーを介して定義された型はありtype_new
ますか?
のtp_dict
メンバーがPyTypeObject
いますが、使い方がわかりません。でも何かが起こっているようですがtypeobject.c
、type_new
はっきりと解読できません。
これが私が見つけたいくつかの関連情報です:
python - Python C-API と Numpy: import_array のコア ダンプ
このような単純なプログラムで何が間違っている可能性がありますか? 私は髪を引き裂いています:-)