如何部署通过IronPython调用numpy的C#应用程序

如何部署通过IronPython调用numpy的C#应用程序,c#,python,numpy,ironpython,C#,Python,Numpy,Ironpython,我正在编写一个C#GUI应用程序,我想在其中使用numpy,我在Python2.7下广泛使用了numpy,它非常快速且易于编程。(我仍然觉得C#中的GUI比PyQt更易于使用。) 现在已经有了numpy和scipy的IronPython端口,我想学习如何使用它 在开始之前,我想知道我将有什么样的部署选项? 我可以完全包装python和numpy吗?或者我必须在客户的机器上安装python、Ironpython和numpy吗?您可以将Ironpython代码包装为DLL或exe格式的.net程序集

我正在编写一个C#GUI应用程序,我想在其中使用numpy,我在Python2.7下广泛使用了numpy,它非常快速且易于编程。(我仍然觉得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(使用后者需要对scipy iron_setup.py文件进行一些更改)。输出是一组DLL。此时,我可以在IronPython命令行上导入模块。目前还不起作用的是如何将带有numpy/scipy导入到.net程序集中的IronPython代码编写出来。为此,我将检查。

您使用的是什么版本的Iron Python?什么CLR?我仍然在使用我自己的数学(主要是4x4矩阵)来计算数值部分。现在只使用C#(.NET4.0)。由于我没有使用任何高级C#功能,我会灵活地进行部署。dlr已经安装了.NET4。所以你不必安装它。在这种情况下,通常可以转储IronPython程序集和自定义程序集。我不知道关于numpy的事-你必须和他们核实一下。上次我检查时IronPython还需要Python stdlib。这些都是好消息!您还可以从运行Microsoft.Scripting的主机应用程序导入这些模块吗?你会在某处共享这些DLL吗?如果能将这一过程记录下来,那就太好了,这样我们就可以继续很久以前《热情》发行版开始的脚步。谢谢嗯,我不知道微软的脚本。但我很高兴在Github上共享DLL。需要几天的时间,然后我会在这里发布链接。