我正在编写应该在下面调用 python 脚本的 C++ 代码。为此,我使用 python.org 的cpython。一些 python 脚本在 python for .net 的帮助下执行 .net 代码,而当涉及到 .net 时,这一切都失败了。我尝试构建测试应用程序以验证它失败的地方,发现它无法导入 clr 模块。
当我运行此代码时,它给了我 ImportError: No module named clr
Py_Initialize();
PyRun_SimpleString("import clr");
如果我去 python 控制台并输入“import clr”,一切正常。我还检查了 sys.path,它包含 clr.pyd 所在的文件夹“C:\Python27\DLLs”。我还尝试通过以下方式在 C++ 中设置此路径:
char* path = "C:\\Python27\\dlls";
Py_Initialize();
PySys_SetArgv(1, &path);
char* phome = Py_GetPythonHome();
但这没有帮助。另外我不明白为什么 clr 模块显示为 clr.pyd 而不是 .pyc 像其他编译模块一样。
有人可以解释为什么 import clr 通过 CPython 失败?有可能让它工作吗?