問題タブ [python-embedding]

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 投票する
2 に答える
999 参照

swig - Extending embedded Python in C++ - Design to interact with C++ instances

There are several packages out there that help in automating the task of writing bindings between C\C++ and other languages.

In my case, I'd like to bind Python, some options for such packages are: SWIG, Boost.Python and Robin.

It seems that the straight forward process is to use these packages to create C\C++ linkable libraries (with mostly static functions) and have the higher language be extended using them.

However, my situation is that I already have a developed working system in C++ therefore plan to embed Python into it so that future development will be in Python.

It's not clear to me how, and if at all possible, to use these packages in helping to extend embedded Python in such a way that the Python code would be able to interact with the various Singleton instances already running in the system, and instantiate C++ classes and interact with them.

What I'm looking for is an insight regarding the design best fitted for this situation.

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

python - PyPyを.NETアプリケーションに埋め込むことは可能ですか?

Pythonインタープリターを.NETアプリケーションに埋め込みたいのですが。もちろん、私はIronPythonを知っていますが、スタックレスサポートとマイクロスレッドがあるため、PyPyに特に興味があります。

ただし、PyPyはCLIに対して構築できますが、スタンドアロンのPythonインタープリターをpython.exeとして提供しているように見えます。.NETホストアプリケーション内に実際に埋め込むことができるものを構築するためのドキュメントを見つけることができませんでした。

(スタックレス)PyPyを使用して.NETアプリからPythonスクリプトを実行し、それらのスクリプトがホストアプリケーションによって提供されるCLRオブジェクトと対話できるようにする方法はありますか?

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

python - PyImportModule でインポートが失敗した理由を調べるにはどうすればよいですか?

Python (2.7.1) を組み込んだ C アプリケーションにこのコードがあります。

PyImport_ImportModuleが失敗する、NULL を返します。インポートに失敗した理由を確認するにはどうすればよいですか? (たとえば、モジュールをインポートするときは、埋め込みの外側で検索します)。

(コードはpy-exim-localscan の一部であり、まれに発生するエラーに関する情報を追加したいと考えています)。

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

python - Python を C に埋め込む - モジュールのインポート

ドキュメントに従って C 用の埋め込み Python を使用すると問題が発生します- インポートされたモジュールを使用しようとすると、次のようになります。

PythonIncl.exe の 0x1e089e85 で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00000004。

エラーはPyObject_GetAttrString()メソッドで発生し、ドキュメントはあまり役に立ちません。IBM の例のようにチュートリアルも使用してみましたが、常に同じアクセス違反が発生します。

以下は、動作しないように見えるチュートリアルの 1 つからのサンプル コードです。ここで何が問題なのですか?

C コード (1 つのメイン ファイル内):

Python コード (reverse.py という名前のファイル内、同じフォルダー内):

MSVS2008、Python 2.7 を使用して XP マシンを実行しています

ちょっとしたコンテキスト: OpenOPC を使用する小さな python スクリプトをかなり大きな C プログラムに埋め込もうとしていて、2 つの間でデータを転送したいと考えています。ただし、基本的な例を使用した概念実証テストでは、すでに失敗しています。

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

windows - Python を Qt アプリケーションに埋め込む

Qt アプリケーションで Python を使用したいと考えています。

ビルドの問題

どのライブラリをリンクする必要がありますか、または何が問題ですか?

x64でMinGWを使用しています...おっと、それが問題かもしれません-Pythonのx64ライブラリ

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

c++ - 非Boost::Python C++Python埋め込みフレームワークを探しています

私のプロジェクトはC++で書かれていて、組み込みプログラミング言語が必要な段階に進んでいます。私はいくつかの理由でPythonを選択し、動的にロードされたPythonモジュールにAPIを公開することで遊んでいます。それはうまく機能し、近い将来、Pythonを使い続けると思います。

でも質問があります。私は、提供しているPython APIに各関数を追加することに多くの時間を費やしてきました。そのため、繰り返しの多くを軽減するフレームワークを探していました。

何度も言及されているように見えるフレームワークはBoost::Pythonです。Boost :: Pythonには何の反対もありませんが、実際、近い将来に使用する可能性があります。このプロジェクトでは、残念ながらBoost関連のライブラリを使用できません。

他にまともなフレームワークはありますか?私は特に自分で書くのは好きではありませんが、ストレートなPythonCAPIを使い続けたいとも思っていません。

ありがとう!

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

c++ - Python+numpyコードをC++dllコールバックに埋め込む

私はPython埋め込みの初心者です。私はPython+numpyコードをC++コールバック関数内(dll内)に埋め込もうとしています

私が直面している問題は次のとおりです。私が持っている場合:

すべてが正常に動作します。

しかし、私が持っている場合:

これは、2回目に_import_array()に到達したときにクラッシュします。(最初のコールバックで機能することを意味します)

代わりに、pythonとnumpyの初期化を1回だけ実行し、デストラクタでファイナライズを実行すると(したがって、初期化/ファイナライズのたびにではありません)、コールバックを終了するときにすべてがクラッシュします。

ここでの問題は厄介だと思いますが、解決方法がわかりません

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

python - Python C API がモジュールをロードしない

C API を使用して、C で数学と numpy インポートを含む python モジュールをロードしようとしています。モジュールを読み込んで実行できますが、数学モジュールをインポートすると機能しません。

Arch Linux、Python 2.7.2、および gcc を使用しています。

ここにコード:

func.py

また、スクリプトを使用せずに Python スクリプトを C に埋め込むにはどうすればよいでしょうか?

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

c++ - PyImport_ImportModuleとimportステートメントは別の名前空間にロードされますか?

埋め込まれたPython3.xをC/C++で拡張するプログラムの標準的な例を次に示します。

emb組み込みインタプリタのビルトインにモジュールを追加します。また、自動的にインポートしたいので、ユーザーはimport emb、埋め込まれたインタープリターに提供されたスクリプトでステートメントを発行する必要がありません。(1)行と(2)行の2つのインポート方法を試しています。

1)は機能し、モジュールは(3)emb行の簡単なテストで明示的にインポートしなくても見つけることができます。ただし、行(1)をコメントアウトし、行(2)のコメントを解除してPython3呼び出しのCAPIでインポートすると、行(3)でエラーが発生します。

ここで、2つのインポート方法の違いを理解したいと思います。モジュールを異なる名前空間/スコープにインポートしますか?

Python 3のドキュメントは、私をこの道に導きました。

  1. PyImport_ImportModuleは、組み込みのPython関数を参照することで最もよく説明されます__import__()
  2. __import__()関数はimportステートメントによって呼び出されます。

おそらく、PyImport_ImportModule1対1で同等であると想定して間違いを犯し、正しい(正確には?)グローバルとローカルでPyImport_ImportModuleExを使用する必要があるため、「emb」は埋め込みインタープリターのグローバル名前空間に配置されます。

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

python - Python の埋め込み

Cコードからpython関数を呼び出そうとしていますが、ここからサンプルをたどりました

また、正しいインクルード ファイル ディレクトリ、ライブラリ ディレクトリ、および python32.lib のリンク (python 32 を使用) がありますが、エラーは、PyString_FromString、PyInt_FromLong、PyInt_AsLong などの python/C API が定義されていないことでした (デバッガーのエラー)。

私は他のAPIも使用しているので、これは奇妙ですが、それらはすべて問題ありません...

ここで問題は何ですか??

Py_Initialize()、PyImport_Import()、PyModule_GetDict() はすべて正常に動作しますが、PyString_FromString では動作しません...