我正在尝试执行一个使用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来实现这一点,我需要做什么?
答案 0 :(得分:10)
事实证明,即使我通过
添加了路径sys.path.insert(0,"C:\\dev\\proj_1\\")
它仍然无法找到该文件,因为.dll因为Windows未启用它从“外部源”加载。解决这个问题:
答案 1 :(得分:3)
Python for .NET无法找到lib的另一个可能原因是Python和程序集的不同平台。 Python 64位无法看到x86 Dll,而Python 32位无法看到x64。确保您的lib与Python平台匹配,或者将它们编译为AnyCPU。