使用 IronPython 通过 C# .NET 导入 Python 模块

2023-11-24

我正在尝试使用 IronPython 通过 C# .NET 运行 Python 类,Python 类导入的几个模块是:

import collections
import nltk.classify.util

为了在运行 IronPython 时导入这些,我使用获取搜索路径的集合脚本引擎添加 Python 库位置的路径,如下所示:

ICollection<string> paths = pyEngine.GetSearchPaths();
string dir = @"C:\Python27\Lib\";
paths.Add(dir);
string dir2 = @"C:\Python27\Lib\site-packages\nltk\classify\";
paths.Add(dir2);
pyEngine.SetSearchPaths(paths);

这似乎运行良好收藏品模块,但不是nltk.classify.util,并且在调用 ScriptEngine 的 Execute 方法时出现以下错误:

没有名为 nltk.classify.util 的模块

即使 util 模块位于上面指定的路径中。我认为这个问题与 Python 类中指定导入的方式有关(“.”分隔),只是不知道如何解决它。有什么想法哪里出了问题吗?


Python 使用包名称的结构来搜索模块,因此如果您要求nltk.classify.util它会寻找nltk\classify\util.py从搜索路径中的每个目录开始。

所以在你的例子中,你想改变dir2如下:

string dir2 = @"C:\Python27\Lib\site-packages";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 IronPython 通过 C# .NET 导入 Python 模块 的相关文章

随机推荐