You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python.net访问含多类实例的C#类时遇‘模块未找到’问题

问题描述

我正尝试通过Python.net访问一个包含多个TestObject实例的C#类,相关代码如下:

Python代码

import clr
import sys
sys.append({path})
clr.AddReference({project})
from TestProject import TestClass

但只要该C#类中包含多个类实例,程序就会报错*‘Module not found’*,尽管这个类编译完全正常。

C#代码

public class TestClass
{
    public TestObject test1;
    public TestObject test2;
}

请问有人知道这是什么原因吗?

可能的原因及解决方法
  • 依赖程序集未加载:Python.net仅加载了你指定的{project}程序集,但TestObject可能定义在另一个独立程序集中。当Python.net尝试解析TestClass的成员类型时,找不到依赖的TestObject所在程序集,就会触发模块未找到错误。解决方式是通过clr.AddReference()将TestObject所在的程序集也添加到Python环境中。
  • 路径配置不完整:sys.append({path})仅添加了TestClass所在程序集的目录,未包含TestObject所在程序集的存放目录。需要把所有依赖程序集的目录都添加到sys.path中,确保Python.net能找到所有需要的模块。
  • TestObject访问权限不足:如果TestObject的定义未使用public修饰符,Python.net无法跨程序集访问该类型,也会导致解析失败。检查TestObject的定义是否为public class TestObject。
  • 编译或版本问题:虽然C#项目编译通过,但可能存在依赖程序集版本不匹配,或者编译时未正确引用TestObject所在项目。尝试重新编译整个解决方案,确保所有依赖项都被正确打包和引用。

内容的提问来源于stack exchange,提问作者arjen1984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 09:44:54