我正在努力学习如何正确地使用Python/capi——我实际需要做的只是读取一个全局变量(在我的字典中——但是我从一个简单的整数变量开始)。 利用讨论: How to access a Python global variable from C? 答案的来源是: http://bytes.com/topic/python/answers/705918-c-api-embedded-python-how-get-set-named-variables 我写了一个小东西:
Python代码(幽会.py)公司名称:
var1 = 1
var2 = ['bla', 'blalba']
var3 = {"3" : "Three", "2" : "Two", "1" : "One", "0" : "Ignition!"}
print "end of file - tryStuff!!"
C代码(embeddepythontry.C):
^{pr2}$运行这个c程序的输出是:
end of file - tryStuff!!
After the import, before the addition
var1=-1 ; var1==NULL: 1
这意味着Python解释器找到并运行正确的Python脚本,但不知何故它无法读取变量(var1)。在
有人能发现问题吗?我已经有点迷路了。看起来最简单的情况是应用Python/capi,但它不起作用。 我错过了什么?在
您应该对
PyImport_ImportModule
的结果调用PyObject_GetAttrString
。我不知道您为什么认为__main__
模块应该定义该变量:您还应该添加对结果的检查,因为当导入失败时,
PyImport_ImportModule
可以返回NULL
。在相关问题 更多 >
编程相关推荐