尝试将C#代码导入Python脚本时出现导入错误

时间:2020-09-28 15:16:13

标签: python-import ironpython python.net

我几乎没有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 3.8.1和PythonNet 2.5.1一起使用
  • 已成功构建C#解决方案并创建了.dll文件(使用VS 2019)

我注意到对类似问题的一些回答,建议将目录添加到python路径,但是我不认为这是我遇到的问题。为了进行健全性检查,我在与.dll文件相同的目录中创建了一个python文件,其中包含可以在脚本中成功调用的类/函数。

1 个答案:

答案 0 :(得分:0)

我不认为Python.NET在搜索C#程序集时会探测Python的sys.path。而是使用.NET逻辑。在Windows上,您只需将DLL目录的路径添加到PATH环境变量中即可。

相关问题