Pythonnet错误:动态模块未正确初始化

时间:2016-01-20 20:45:09

标签: python .net python.net

我在win32上安装了Windows 7 x64和Python版本2.7.6。 安装的框架是:

Microsoft .NET Framework 4.5.2 Microsoft .NET Framework 4多目标包。 因此,当我运行我的应用程序时,他崩溃了:

import clr

出现此错误:

SystemError: dynamic module not initialized properly

我还用Visual C#2010 express重建pythonnet,使用x86平台,但没有。

请有人帮助我。 并且可能有人可以告诉我安装所需的.NET Framework以使用pythonnet。

2 个答案:

答案 0 :(得分:2)

我也有这种行为。我通过pip安装Python.net来修复它:

python -m pip install pythonnet(可能需要以管理员/ root身份运行)

安装完成后,执行

时不会出现任何错误
> python
> import clr

答案 1 :(得分:1)

发生错误的原因是clr.pyd无法找到Python.Runtime.dll。基本上您已成功导入clr.pyd,但clr.pyd找不到Python.runtime.dll。因此,为了使您的dll可搜索,您需要将Python.Runtime.dll的位置添加到System PATH

我们假设您的main.py import clr以及clr.pydPython.Runtime.dll位于同一目录中,您只需要添加以下几个main.py开头的行:

import sys
import os

sys.path.insert(0, os.path.abspath('./')) # add the current file location to sys path so that the clr module is searchable