Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

TLDR; PyString_FromString doesn't work in Python3.5 so I need an alternative.

I am following an example for including python 3 within a C++ project from this python documentation: https://docs.python.org/3/extending/embedding.html

Everything is working fine but now I want to change the line that reads:

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

to the following (I also no longer use i, that was from a loop):

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

It seems the PyString_FromString function is no longer an option Python3.5 and I get the following error when I compile the code with g++:

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

Any idea on how I get around this? No matter what I look for I can't seem to find a solution that doesn't throw an error. I need to pass a string to my Python file and I have a string to start with already.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
397 views
Welcome To Ask or Share your Answers For Others

1 Answer

PyUnicode_FromString()

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...