首页 > 解决方案 > 在 pythonnet 中导入 .NET 自定义类时出现 ModuleNotFoundError

问题描述

我正在尝试使用 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 Core 类库项目。它编译得很好并创建了一个 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: No module named 'MyClass'”错误。

标签: c#python.net.net-corepython.net

解决方案


原来我正在使用 .NET Core 编译 DLL。更改为 .NET Framework 4.5 解决了该问题。

我希望错误消息更有帮助。


推荐阅读