【问题标题】:How to call public method in .NET5 dll from RapsberryPi using Python 3.9如何使用 Python 3.9 从 RapsberryPi 调用 .NET5 dll 中的公共方法
【发布时间】:2022-08-02 17:43:21
【问题描述】:

我有 Win10(64 位)VS2019 C# .NET5 项目。该项目在命名空间 \"CsharpDll\" 中的公共类 \"Calculate\" 中包含名为 \"Add(int a, int b)\" 的公共方法。构建的最终结果是“CsharpDll.dll”文件。

我正在尝试使用 RaspberryPi OS(32 位)和 Python 3.9 从 Raspberry Pi 调用此 \"Add()\" 方法。到目前为止没有成功。

注意:\"pythonnet\" 库不支持 Python 3.9 版。如果没有属性 \"--pre\",安装将失败。在运行 Python 代码之前,我使用以下命令将“pythonnet”库安装到 Raspberry Pi:

pip install --pre pythonnet

这是我使用的 C# .NET5 示例:

using System;
namespace CsharpDll
{
    public class Calculate
    {
        public int Add(int a, int b)
        {
            return a+b;
        }
    }
}

这是我使用的 Python 示例:

#!/usr/bin/env python
import clr
from CsharpDll import Calculate

# set path variables
clr.AddReference(\'/home/.../CsharpDll.dll\')

# create object
myDll = Calculate()
print(\'C# returned value: \', myDll.Add(1,2))

预期结果:C#返回值:3

实际结果是一条错误消息:

File \"/home/.../.local/lib/python3.9/site-packages/clr_loader/util/find.py\", line 67, in find_libmono
    raise RuntimeError(\"Could not find libmono\")
RuntimeError: Could not find libmono

问题:有没有人在 Raspberry Pi 中使用 Python 3.9 中的 .NET5 dll,并且对如何解决这个问题有任何想法?

请您的, 安蒂

    标签: raspberry-pi3 .net-5 python.net


    【解决方案1】:

    你得到答案了吗?

    还是希望我的回答可以帮助到后来的人

    我通过安装 mono-complete 让它工作:

    sudo apt-get install mono-complete

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 2011-09-19
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      相关资源
      最近更新 更多