Pythonnet缺少AddReference方法

时间:2019-07-09 17:06:43

标签: python-3.x python.net

在Win10 1709 x64 PC上,安装了Python 3.7.4 64位和pythonnet-2.4.0-cp37-cp37m-win_amd64.whl。确认的clr.pyd和Python.Runtime.dll存在于:

  

C:\ Users \ me \ AppData \ Local \ Programs \ Python \ Python37 \ Lib \ site-packages \

将My.Assembly.dll放在:

  

C:\ Users \ me \ AppData \ Local \ Programs \ Python \ Python37 \ DLLs \

此脚本失败:

import clr
clr.AddReference("My.Assembly")

有错误:

  

AttributeError:模块'clr'没有属性'AddReference'

删除第二行时,导入clr成功,因此找到了clr.pyd。

这是我当前安装的软件包:

astroid == 2.0.4
瓶== 0.12.13
certifi == 2018.10.15
chardet == 3.0.4
colorama == 0.3.9
柯南== 1.9.1
弃用== 2.0.6
distro == 1.1.0
紧固件== 0.14.1
未来== 0.16.0
idna == 2.7
isort == 4.3.4
lazy-object-proxy == 1.3.1
mccabe == 0.6.1
单调== 1.5
node-semver == 0.2.0
包装== 18.0
patch == 1.16
pluginbase == 0.7
Pygments == 2.2.0
PyJWT == 1.6.4
pylint == 2.1.1
pyparsing == 2.3.0
pythonnet == 2.4.0
PyYAML == 3.13
个请求== 2.20.1
六个== 1.11.0
tqdm == 4.28.1
urllib3 == 1.24.1
wrapt == 1.10.11

2 个答案:

答案 0 :(得分:0)

clr字符串样式软件包的命名冲突,该软件包从Lib\site-packages\clr\style_builder.py导入,不包含任何AddReference()方法。

通过pythonnet软件包正确的clr模块源代码看起来像this

在全新的环境中尝试pip install pythonnet,以确保没有程序包冲突,然后重试:

import clr
clr.AddReference()

答案 1 :(得分:0)

我的脚本文件夹中有一个名为clr.py的脚本:(已将其删除,现在一切正常。