c# - 在 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'”错误。
解决方案
原来我正在使用 .NET Core 编译 DLL。更改为 .NET Framework 4.5 解决了该问题。
我希望错误消息更有帮助。
推荐阅读
- php - Wordpress,如何使用子主题功能 php 覆盖主题小部件?
- ssh - 除了 chroot jail,还有其他方法可以限制 SSH 用户吗?
- python - 如何解决 ValueError:样本大于总体或为负数?
- python - 如何解决google cloud ndb数据同时存储消失的问题?
- image - 使用 ImportXml 在 Google 表格中抓取图像
- php - 如何拆分 JSON 数据?
- python - Python:如何从 xml 中获取命名空间?
- javascript - 下拉选项在 vuejs 中没有正确选择
- c# - ASP.NET Core MVC:找到的程序集的清单定义与程序集引用不匹配
- c# - 在 vscode 中调试 C# 源代码生成器