1

新しい型を調べて定義し、それらを pytypeobject に格納して、次の関数を呼び出しました (インタープリターを初期化した後):

PyType_Ready(); //これは定義済みの型を取ります

PyModule_AddObject(); //これにより、PyModule_Create() を使用して作成したモジュールに定義済みの型が追加されます。

定義した型を使用しようとすると、インタープリターはそれが存在しないと言うので、実行時に型を追加するために実行する必要がある別の手順があるか、または他に必要な一連の手順があると想定していますこれを達成するためにかかります。

どんな助けでも大歓迎です。

Python 構文エラー:

Traceback (most recent call last):
  File "testscript.py", line 1, in <module>
    import Bound
ImportError: No module named Bound

テスト スクリプトの内容:

import Bound
l = Bound.Foo()

Bound はモジュールを定義した名前で、Foo はテスト目的で定義しようとしている型です。

4

1 に答える 1

2

だから私は何をする必要があるかを考え出した、私は前に関数を呼び出さなければならなかったPy_Initialize

PyImport_AppendInittab( ModuleName, ModuleInitFunction );

これにより、モジュール名が python モジュール ディクショナリに追加されるため、 を呼び出すとimport ModuleName、初めての場合はModuleInitFunction(持っていたが、適切な場所で使用していなかった) が呼び出され、モジュールが作成されます。モジュールが作成されたら、実行時に型を追加することができます。これは私が行っていることです。

現在、実行時にユーザー定義の C++ クラスを Python にバインドし、ゲーム エンジンのスクリプトで使用できます。現在、実行時の問題を解決していますが、数日以内に稼働するはずです。いずれにせよ、誰かがスクリプティングのためにゲーム エンジンに Python を埋め込むことを決定したことがあれば、私はその手助けができると確信しています。

于 2011-06-29T00:28:49.057 に答える