встраивание python в c ++: сценарий python не распознан - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь встроить скрипт Python в проект C ++.Ниже приведено то, что я пробовал до сих пор.

#include<iostream>
#include <Python.h>

int
main()
{
    Py_Initialize();
    PyObject* sysPath = PySys_GetObject("path"); 
    PyObject* modPath = PyBytes_FromString("C:\\Users\\naal\\Documents\\Visual Studio 2017\\Projects\\Project1\pyscripts");
    int result = PyList_Insert(sysPath,0, modPath);
    PyObject *pModule = PyImport_ImportModule("myscript2");
    printf("%p\n", pModule);
    return 0;
}

ниже приведен скрипт Python "myscript2.py"

def find_me():
    print("hey you found me")

Проблема в том, что основной модуль не может найтискрипт python, т.е. объект pyModule всегда NULL, независимо от того, как я изменяю путь скрипта python.

Что я делаю не так?

1 Ответ

0 голосов
/ 12 апреля 2019

В итоге я реализовал это по-другому.

#include<iostream>
#include <Python.h>

int main() {    
       std::string location = "C:\\Users\\myscript.py";     
       const char* file_location = location.c_str();    FILE* file_pointer;          
       Py_Initialize();
       file_pointer = _Py_fopen(file_location, "r");
       PyRun_SimpleFile(file_pointer, file_location);

       Py_Finalize();
       return 1;
       }

Выше, казалось, сработало. Я до сих пор не знаю, почему идея SYSPATH, первоначально упомянутая в вопросе, не сработала.

...