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");
我想这不是让它工作的方法。什么是正确的方法? 谢谢!
最佳答案
PyImport_ImportModule
返回导入的值。您需要将其保存在 globals
中,名称为 random
。总结:
PyMapping_SetItemString(globals, "random", PyImport_ImportModule("random"));
但不要忘记检查导入的结果以防它抛出异常。
关于Python C API : How to get PyRun_String with Py_eval_input to use imported modules?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150835/