PythonNet FileNotFoundException:无法找到程序集

时间:2015-03-03 20:00:30

标签: python .net python-2.7 ironpython python.net

我正在尝试执行一个使用Python For .Net(https://github.com/pythonnet/pythonnet)的Python脚本来加载名为“Kratos_3.dll”的C#库,该库与脚本位于同一文件夹中但找不到该文件。

我使用“pip install pythonnet”安装了clr。

这是我的剧本:

import clr
import sys
sys.path.insert(0,"C:\\dev\\proj_1\\")
clr.AddReference("Kratos_3") 

我一直收到错误

FileNotFoundException: Unable to find assembly 'Kratos_3. at Python.Runtime.CLRModule.AddReference(String name)

当我使用IronPython运行它时,它可以工作,但我想使用常规Python 2.7来实现这一点,我需要做什么?

2 个答案:

答案 0 :(得分:10)

事实证明,即使我通过

添加了路径
sys.path.insert(0,"C:\\dev\\proj_1\\")

它仍然无法找到该文件,因为.dll因为Windows未启用它从“外部源”加载。解决这个问题:

  1. 右键单击.dll
  2. “属性”
  3. 在“常规”下,点击“取消屏蔽”

答案 1 :(得分:3)

Python for .NET无法找到lib的另一个可能原因是Python和程序集的不同平台。 Python 64位无法看到x86 Dll,而Python 32位无法看到x64。确保您的lib与Python平台匹配,或者将它们编译为AnyCPU。