Есть Python код:
test.py:
from test2 import Say
Say()
test2.py:
def Say():
print("Mew")
И есть c++ код:
#include <Python.h>
int main(){
Py_Initialize(); // инициализация интерпретатора
PyObject *obj = Py_BuildValue("s", "test.py");
FILE *file = _Py_fopen_obj(obj, "r+");
if(file != NULL) {
PyRun_SimpleFile(file, "test.py");
}
Py_Finalize();
return 0;
}
Компилируется, но при попытке исполнения выдает следующие
File "test.py", line 1, in <module>
from test2 import Say
ModuleNotFoundError: No module named 'test2'
Что я делаю не так, заранее спасибо!
Дело в том, что когда интерпретатор запускается из C-кода, в sys.path
не добавляется текущая директория. Это можно сделать вручную, например так:
PyObject *sysPath = PySys_GetObject("path");
PyList_Append(sysPath, PyUnicode_FromString("."));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На данный вопрос уже ответили:
Помогите закончить программу пожалуйстаНеобходимо создать базовый класс Array с виртуальными методами сложения и поэлементной обработки...