我正在编写一个 C# GUI 应用程序,我想在其中使用 numpy,我在 Python 2.7 下广泛使用过它,它非常快速且易于编程。(我仍然发现 C# 中的 GUI 工作比 PyQt 更容易使用。)
numpy 和 scipy 的 IronPython 端口现在存在,我想学习如何使用它。
在开始之前,我想知道我将拥有什么样的部署选项?我可以完全包装 python 和 numpy 还是必须在客户的机器上安装 python、Ironpython、numpy?
我正在编写一个 C# GUI 应用程序,我想在其中使用 numpy,我在 Python 2.7 下广泛使用过它,它非常快速且易于编程。(我仍然发现 C# 中的 GUI 工作比 PyQt 更容易使用。)
numpy 和 scipy 的 IronPython 端口现在存在,我想学习如何使用它。
在开始之前,我想知道我将拥有什么样的部署选项?我可以完全包装 python 和 numpy 还是必须在客户的机器上安装 python、Ironpython、numpy?
您可以将 Ironpython 代码作为 DLL 或 exe 包装到 .net 程序集中。如果您需要从其他 .NET 代码加载代码,请使用 IronPython 脚本创建一个 DLL
import clr
clr.CompileModules(dllname, module1.py, module2.py,...)
然后加载该程序集
Assembly dpma = Assembly.LoadFile(Path.GetFullPath("CompiledIronPythonModule.dll"));
pyEngine.Runtime.LoadAssembly(dpma);
(C# 示例)。在 VisualStudio 中,您需要引用 IronPython 和项目中的 dll。
我刚刚成功地使用 IronPython 2.7.5、Visual Studio 2012 .NET 4.0 和 Intel Fortran Composer XE 2013 从头开始编译 numpy 和 scipy-refactored(使用后者需要对 scipy iron_setup.py 文件进行一些更改)。输出是一组 DLL。此时我可以在 IronPython 命令行上导入模块。还没有工作的是如何使用 numpy/scipy 导入到 .net 程序集中来烹饪 IronPython 代码。为此,我将检查ironpycompiler。