Я пишу приложение на языке C, которое позволит мне встраивать в него модули Python. Модули Python отвечают за инициацию удаленных вызовов процедур для кода Python на удаленном компьютере через библиотеку rpyc. Мои модули Python будут расположены в том же месте, откуда будет запускаться приложение. Я предполагаю, что мое приложение C будет работать на машине, на которой нет необходимых библиотек Python, например. rpyc.
Я хотел знать, есть ли способ объединить все зависимости вместе с моими модулями, когда я отправляю код для распространения.
Я использовал Cython для компиляции модуля Python в .pyd, но для этого все равно необходимо установить необходимые библиотеки Python.
Мой код C:
int main(){
int argc = 2;
wchar_t* argv[] = { (wchar_t *)"mypythonmodule", (wchar_t *)"-h", NULL };
const char *module = argv[0];
PyObject *pName, *pModule, *pFunc;
PyObject *pArgs, *pValue;
Py_Initialize();
pName = PyUnicode_DecodeFSDefault(module);
pModule = PyImport_Import(pName);
Py_DECREF(pName);
if (pModule != NULL) {
pArgs = PyTuple_New(argc);
for (int i = 0; i < argc; i++) {
pValue = PyUnicode_FromString(argv);
PyTuple_SetItem(pArgs, i, pValue);
}
pFunc = PyObject_GetAttrString(pModule, "parse_args");
PyObject_CallObject(pFunc, pArgs);
Py_DECREF(pFunc);
Py_DECREF(pArgs);
//Py_DECREF(pValue);
Py_Finalize();
}
}