3
PyRun_String("random.randint(1,10)", Py_eval_input, globals, globals);

次のエラーを返します。

Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'random' is not defined

コードの前半で、次のことを行いました。

PyImport_ImportModule("random");

これはそれを機能させる方法ではないと思います。正しい方法は何ですか?ありがとうございました!

4

1 に答える 1

2

PyImport_ImportModuleインポートされた値を返します。globalsという名前で保存する必要がありますrandom。要約すれば:

PyMapping_SetItemString(globals, "random", PyImport_ImportModule("random"));

ただし、例外がスローされた場合に備えて、インポートの結果も確認することを忘れないでください。

于 2011-05-27T10:27:16.750 に答える