2011-05-27 18 views
3
PyRun_String("random.randint(1,10)", Py_eval_input, globals, globals); 

を返すエラー:Python C API:Py_eval_inputでPyRun_Stringを取得し、インポートされたモジュールを使用する方法は?

以前のコードで
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
NameError: name 'random' is not defined 

、私がやった:私は、これはそれが仕事を得るための方法ではありません

PyImport_ImportModule("random"); 

思います。正しい方法は何ですか? ありがとうございました!

答えて

2

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

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

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

+0

ありがとうダンカン! – David

関連する問題