ImportError:使用python.org的CPython时没有名为clr的模块

y_d*_*y_d 6 .net python clr cpython python.net

我正在编写C++代码,它应该调用下面的python脚本.为此,我使用python.org的cpython.一些python脚本在python for .net的帮助下执行.net代码,当涉及.net时,所有这些都失败了.我尝试构建测试应用程序以验证它失败的位置,并发现它无法导入clr模块.

当我运行此代码时,它会给我ImportError:没有名为clr的模块

Py_Initialize();
PyRun_SimpleString("import clr");
Run Code Online (Sandbox Code Playgroud)

如果我去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();
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.另外我不明白为什么clr模块显示为clr.pyd而不是像其他编译模块一样出现.pyc.

有人可以解释为什么导入clr通过CPython失败?它可以使它工作吗?

jat*_*tin 10

要安装clr,您必须安装pythonnet库.

您可以使用以下命令安装pythonnet.

 pip install pythonnet
Run Code Online (Sandbox Code Playgroud)


mic*_*ael 1

您需要适当地调用PySys_SetArgvafterPy_Initialize来更改系统路径。