web-dev-qa-db-fra.com

Remplacement de la méthode PyString_FromString dans python 3

TLDR; PyString_FromString Ne fonctionne pas en Python3.5, j'ai donc besoin d'une alternative.

Je suis un exemple pour inclure python 3 dans un projet C++ à partir de cette documentation python: https://docs.python.org/ 3/extension/incorporation.html

Tout fonctionne bien mais maintenant je veux changer la ligne qui se lit:

pValue = PyLong_FromLong(atoi(argv[i + 3]));

aux éléments suivants (je n'utilise plus non plus i, qui provenait d'une boucle):

pValue = PyString_FromString("A string instead of a number");

Il semble que la fonction PyString_FromString N'est plus une option Python3.5 et j'obtiens l'erreur suivante lorsque je compile le code avec g ++:

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

Une idée sur la façon de contourner cela? Peu importe ce que je recherche, je n'arrive pas à trouver une solution qui ne génère pas d'erreur. J'ai besoin de passer une chaîne à mon fichier Python et j'ai déjà une chaîne pour commencer.

13
Mr. C

PyUnicode_FromString()

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