我目前正在写在C#,这我在嵌入IronPython的应用程序。我一般都没有关于它的问题,但有一个件事,我不知道该如何处理。
我想导入外部模块到脚本。 我怎样才能做到这一点? 简单的import ext_lib
不起作用。 我要补充的路径到lib到sys.path
? 也许是可能的lib的.py文件从那里复制到app目录并导入?
编辑:我终于选择了另一种解决方案-编译我的剧本与py2exe
,我只是运行它从主C#应用Process
(不使用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%的时间它是一个路径问题有太多。