PythonNet FileNotFoundException:无法找到程序集

bac*_*and 6 .net python ironpython python-2.7 python.net

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

我使用"pip install pythonnet"安装了clr.

这是我的脚本:

import clr
import sys
sys.path.insert(0,"C:\\dev\\proj_1\\")
clr.AddReference("Kratos_3") 
Run Code Online (Sandbox Code Playgroud)

我一直在收到错误

FileNotFoundException: Unable to find assembly 'Kratos_3. at Python.Runtime.CLRModule.AddReference(String name)
Run Code Online (Sandbox Code Playgroud)

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

bac*_*and 15

事实证明,即使我添加了路径

sys.path.insert(0,"C:\\dev\\proj_1\\")
Run Code Online (Sandbox Code Playgroud)

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

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


rai*_*ine 5

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