問題タブ [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.

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

python - PyTuple オブジェクトの解放

PyTuplePython C-API を使用してオブジェクトを解放する適切な方法は何ですか?

挿入された要素への参照をPyTuple_SetItem盗む」ため、参照カウントのセマンティクスに関して言えば、タプルは多少特殊であることを私は知っています。また、タプル オブジェクトの参照を減らすと、タプル内のすべての要素の参照カウントが減ることもわかっています。

これを念頭に置いて、私は言うのが安全であるべきだと思います:

しかし、タプル参照カウントをデクリメントすると、最後の行でセグメンテーション違反が発生します。なぜこれが起こるのかわかりません。Py_DECREF参照カウントの呼び出しの直前にある1ので、ここで何が問題なのですか?

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

python - Python C API: PyEval_CallFunction?

Python C API で という名前のPyEval_CallFunction便利な関数を発見しました。次のように言うことで、Python callable を呼び出すことができます。

ただし、この関数に関する公式ドキュメントは見つかりません。Google 検索では、この機能について説明しているさまざまな非公式のチュートリアルが表示されますが、次のようになります。

  1. この関数公式の Python ドキュメントに記載されていないため、パブリック API の一部であると想定されているものであるかどうかはわかりません。

  2. Web を検索すると、一貫性のない使用ポリシーが見つかります。一部のチュートリアルでは、フォーマット文字列が型リストの周りに括弧が必要であることを示していますが "(OiiO)"、他の場合は括弧なしで使用されています。実際のプログラムで実際に関数を試してみると、括弧が必要なようです。そうしないと、segfault が発生します。

この機能は便利なので使ってみたいです。誰かがこれについて何か知っていますか、または文書化されていない理由を知っていますか? それはパブリック API の一部ですか?

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

python - 現在の PyInterpreterState を取得するにはどうすればよいですか?

PyThreadState現在のスレッドには がないようですので、作成したいと思います。

現在の PyInterpreterState を に渡すにPyThreadState_New(...)はどうすればよいですか、それとも Python からライブラリを呼び出すのではなく、インタープリターを埋め込んでいる (したがって作成した) 場合にのみ行うべきことですか?

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

python - C++ Python 埋め込み: Python のないマシンで実行しますか?

Python スクリプトをサポートする小さなゲームを作ろうとしています。Python C-API の使用に問題はありませんが、Python がインストールされていないコンピューターでゲームを確実に実行する方法がわかりません。

pythonXY.dll が必要なのはわかっています。他に何がありますか? プログラムを実行しようとすると、encodings.utf_8 が見つからないと表示されます。プログラムと同じディレクトリに encodings/utf_8.py ファイルをコピーしようとしましたが、それでもエラーが表示されます。

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

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 を使用する前に、問題なく実行されます。

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

python - __slots__はPythonでどのように実装されていますか?

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

python - __dict__を実装するCからPython型を作成しますか?

  • __dict__「通常の」クラスのように作成された型は、Pythonで定義された場合どのように作成されますか?
  • sを使用した非動的タイプの例はあります__dict__か?
  • PythonのPyTypeObjectパススルーを介して定義された型はありtype_newますか?

tp_dictメンバーがPyTypeObjectいますが、使い方がわかりません。でも何かが起こっているようですがtypeobject.ctype_newはっきりと解読できません。

これが私が見つけたいくつかの関連情報です:

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

python - Python C-API と Numpy: import_array のコア ダンプ

このような単純なプログラムで何が間違っている可能性がありますか? 私は髪を引き裂いています:-)