gpt4 book ai didi

python - 嵌入 python

转载 作者:太空狗 更新时间:2023-10-29 21:17:47 27 4
gpt4 key购买 nike

我试图从 C 代码调用 python 函数,我遵循了 here 中的示例

我也有正确的包含文件目录、库目录和链接 python32.lib(我使用 python 32)但是错误是 python/C API,如 PyString_FromString、PyInt_FromLong、PyInt_AsLong 未定义(调试器中的错误)

这很奇怪,因为我也在使用其他 API,但它们都很好......

这里有什么问题??

int
main(int argc, char *argv[])
{
PyObject *pName, *pModule, *pDict, *pFunc;
PyObject *pArgs, *pValue;
int i;

if (argc < 3) {
fprintf(stderr,"Usage: call pythonfile funcname [args]\n");
return 1;
}

Py_Initialize();
pName = PyString_FromString(argv[1]);
/* Error checking of pName left out */

pModule = PyImport_Import(pName);
Py_DECREF(pName);

if (pModule != NULL) {
pDict = PyModule_GetDict(pModule);
/* pDict is a borrowed reference */

Py_Initialize()、PyImport_Import()、PyModule_GetDict() 都工作正常,但不是 PyString_FromString...

最佳答案

您使用的示例代码适用于古老的 Python 版本 2.3.2。 Python 3.x 系列不仅在语言中而且在 C API 中引入了许多不兼容性。

您提到的函数根本不再存在于 Python 3.2 中。

PyString_ 函数已重命名为 PyBytes_

PyInt_ 函数消失了,应该使用 PyLong_ 代替。

这是您使用过的相同示例,但用于 Python 3:

5.3. Pure Embedding

请注意,它使用的是 PyUnicode_ 而不是 PyString_/PyBytes_。在许多 Python 2.x 使用字节字符串的地方,Python 3.x 使用了 unicode 字符串。

顺便说一下,我通常使用这个页面来查找所有可能的调用:

Index – P

关于python - 嵌入 python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8229597/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com