IronPython在托管时如何加载模块?

财务部

我对IronPython在托管时加载模块的方式感到困惑。

我正在使用通过MSI软件包安装的IronPython 2.7.7,并且已引用C:\Program Files (x86)\IronPython 2.7\IronPython.dllC:\Program Files (x86)\IronPython 2.7\Microsoft.Scripting.dll

有时IronPython无法加载引发的模块IronPython.Runtime.Exceptions.ImportException: 'No module named modulename',但有时一切正常。

例如,

var engine = Python.CreateEngine();
engine.CreateScriptSourceFromString("import datetime; print datetime.datetime.now()").Execute();

可行,但是

var engine = Python.CreateEngine();
engine.CreateScriptSourceFromString("import json; print json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])").Execute();

没有。

我发现了在中设置搜索路径的建议engine所以我加了

var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib");
engine.SetSearchPaths(searchPaths);

现在使用json模块的示例起作用了。

但是我从中获得的搜索路径engine仅包含

  1. "."
  2. "D:\\IronPythonTest\\bin\\Debug\\Lib"
  3. "D:\\IronPythonTest\\bin\\Debug\\DLLs"

而且我的文件夹下Lib没有DLLs文件Debug夹。

那么IronPython如何管理datetime模块加载

预先感谢您的澄清。

西蒙·欧佩尔特

将相关路径添加到引擎的基本方法是正确的。

IronPython尽可能使用大量标准库。在CPython中本地实现的低级模块在Iron Iron的C#中实现。这些模块之一datetime因此,只要IronPython.Modules.dll没有特殊的加载/路径处理,只要有几个标准模块都可以使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在IronPython中加载模块

Webpack:如何在页面加载时加载模块?

如何获取环境模块的模块文件以在加载模块时打印一条消息?

调用“ cabal repl”时,如何预加载模块?

使用SystemJS加载模块时如何摆脱“默认”属性?

如何在启动时加载内核模块?

引导时如何加载模块?它们在引导时加载的顺序是什么?怎么改变呢?

如何防止模块加载

如何在加载本地托管 url 时使无框架电子应用程序可移动

加载Scilab模块时出错

引导时未加载模块

更改模块后如何重新加载模块?

WinForm如何托管长期运行的IronPython脚本并更新UI以进行进度更改

如何重新加载Java模块

(Buildroot)如何自动加载模块

如何从节点加载外部模块

使用IronPython时如何处理C#小数?

如何以新的Angular CLI格式初始化模块加载时的服务

启动时加载linux内核模块的顺序是什么?如何设置优先级?

SystemJ异步加载ES6模块时如何处理Kendo MVC事件绑定

如何安装第三方模块,以便在启动时加载?

如何在使用systemd引导时加载i2c-dev模块

延迟加载模块时如何防止公共布局/外壳组件被破坏?

WPF Prism 6.2 (Unity) - 如何在启动模块加载时注册事件

在控制台中工作时如何轻松重新加载/重新导入模块

插入USB设备时如何加载模块(不是驱动程序)

当存在多个别名时,如何知道要为模块加载哪个别名?

如何在启动时强制加载内核模块(modprobe -f)?

在托管js的域中加载远程js时设置cookie