代码之家  ›  专栏  ›  技术社区  ›  Leonardo

导入时发生ModuleNotFoundError。pythonnet中的NET自定义类

  •  1
  • Leonardo  · 技术社区  · 7 年前

    我想导入一个 很简单 使用pythonnet将自定义C#类转换为Python。我从未使用过C#或VS,所以这可能是我犯的愚蠢错误。

    我有一个坚实的C#代码库(不是我写的),我想用Python来驱动它。

    我有一门C#课程:

    using System;
    
    public class MyClass
    {
        string text;
    
        public MyClass(string text)
        {
            this.text = text;
        }
    
        public void Write()
        {
            Console.WriteLine(text);
        }
    }
    

    在VS 2017中,我创建了一个。NET核心类库项目。它编译得很好,并创建了一个MyClass。dll文件。

    然后我尝试用Python导入它:

    import sys
    
    sys.path.append(r"C:\Users\myuser\source\repos\hello\MyClass\bin\Debug\netcoreapp2.1")
    
    import clr
    
    clr.FindAssembly(r"MyClass")
    
    clr.AddReference('MyClass')
    
    import MyClass
    

    但我总是会遇到“ModuleNotFoundError:没有名为'MyClass'的模块”错误。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Leonardo    7 年前

    原来我是用。净核心。换成。NET Framekwork 4.5解决了这个问题。

    我希望错误信息能更有用。