问题描述
我几乎没有C#的经验,但是我正在尝试将C#类导入正在处理的项目的python脚本中,但是我经常遇到pylint(import-error)。
最初,我认为该问题是由于编译.Net Core而不是this post中指出的.Net Framework引起的;但是,使用.Net Framework 4.7.2编译后,我仍然遇到相同的导入错误。
我要导入的C#类与上述文章(在ClassLibrary(.Net Standard)类型下构建)相同:
TestClassLibrary.cs
using System;
namespace TestClassLibrary
{
public class MyClass
{
public string function()
{
return "Hello World!";
}
}
}
我正在尝试将C#类导入到的Python脚本:
import sys
import clr
sys.path.append(r"<Ablsloute Path to \bin>\Debug\netstandard2.0")
clr.AddReference(r"TestClassLibrary")
from TestClassLibrary import MyClass
要提供更多背景信息:
我注意到对类似问题的一些回答,建议将目录添加到python路径,但是我不认为这是我遇到的问题。为了进行健全性检查,我在与.dll文件相同的目录中创建了一个python文件,其中包含可以在脚本中成功调用的类/函数。
解决方法
我不认为Python.NET在搜索C#程序集时会探测Python的sys.path
。而是使用.NET逻辑。在Windows上,您只需将DLL目录的路径添加到PATH
环境变量中即可。