繁体   English   中英

在 IronPython 中导入外部模块

[英]Importing external module in IronPython

我目前正在开发一个用 C# 编写的应用程序,我将 IronPython 嵌入其中。我通常对此没有问题,但有一件事情我不知道如何处理。

我想将外部模块导入脚本。 我怎样才能做到这一点? 简单的import ext_lib不起作用。 我应该将 lib 路径添加到sys.path吗? 也许可以将 lib 的 .py 文件复制到 app 目录并从那里导入?

编辑:我最终选择了另一个解决方案 - 用py2exe编译了我的脚本,我只是从带有Process主 C# 应用程序运行它(不使用 IronPython)。

无论如何,感谢您的帮助;)

在使用 PythonEngine 编译脚本之前,我将脚本的目录添加到引擎的搜索路径中。 这是我在 C# 代码中所做的:

string dir = Path.GetDirectoryName(scriptPath);                       
ICollection<string> paths = engine.GetSearchPaths();

if (!String.IsNullOrWhitespace(dir))
{
    paths.Add(dir);
}
else
{
    paths.Add(Environment.CurrentDirectory);
}
engine.SetSearchPaths(paths);

现在,如果库位于您正在执行的脚本所在的目录中,它们将是可导入的。

可能是您的路径设置不正确。 来自IronPython 常见问题解答

如何使用 CPython 标准库?

要告诉 IronPython Python 标准库在哪里,可以将 CPython 的“lib”目录添加到 IronPython 的路径中。 为此,请将以下代码放入 IronPython 的“site.py”文件(将 c:\\python24\\lib 替换为 CPython lib 目录的实际路径):

 import sys sys.path.append(r"c:\\python24\\lib")

另外,如果你要导入错误在CPython的一个脚本,必须在您的计算机上的99%的时间它是一个路径问题有太多。

如果你已经从NuGet包安装IronPython并且你想要来自CPython Standard Library模块,那么最好的方法是安装IronPython.StdLib NuGet包,它来自IronPython的同一作者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM