Я пишу код C++, который должен вызывать сценарии Python внизу. Для этого я использую cpython python.org. Некоторые из скриптов python выполняют код .net с помощью python для .net, и когда дело доходит до .net, все это терпит неудачу. Я попытался создать тестовое приложение, чтобы проверить, где оно терпит неудачу, и обнаружил, что оно не может импортировать модуль clr.
Когда я запускаю этот код, он дает мне ImportError: нет модуля с именем clr
Py_Initialize();
PyRun_SimpleString("import clr");
Если я захожу в консоль Python и набираю «import clr», все работает нормально. Я также проверил sys.path, и он содержит папку, в которой clr.pyd находится «C:\Python27\DLLs». Я также попытался установить этот путь на С++:
char* path = "C:\\Python27\\dlls";
Py_Initialize();
PySys_SetArgv(1, &path);
char* phome = Py_GetPythonHome();
Но это не помогло. Кроме того, я не понимаю, почему модуль clr отображается как clr.pyd, а не .pyc, как другие скомпилированные модули.
Может ли кто-нибудь объяснить, почему import clr не работает через CPython? Можно ли заставить его работать?