TLDR; PyString_FromString在Python3.5中不起作用,因此我需要一个替代方法。

我正在从该python文档中获取在C++项目中包含python 3的示例:
https://docs.python.org/3/extending/embedding.html

一切工作正常,但现在我想更改以下内容:
pValue = PyLong_FromLong(atoi(argv[i + 3]));
到以下内容(我也不再使用i,那是从循环开始的):
pValue = PyString_FromString("A string instead of a number");
似乎PyString_FromString函数不再是Python3.5的选项,当我使用g++编译代码时,出现以下错误:

main.cpp:559:60: error: ‘PyString_FromString’ was not declared in this scope
         pValue = PyString_FromString("A string instead of a number");`

关于如何解决这个问题的任何想法吗?无论我要寻找什么,我似乎都找不到一个不会引发错误的解决方案。我需要将字符串传递给Python文件,并且已经有一个字符串开头。

最佳答案

PyUnicode_FromString()

if (!(pValue = PyUnicode_FromString("A string instead of a number")))
  return NULL;

10-02 00:50