【问题标题】:Generate .NET Assemblies from Iron Python从 Iron Python 生成 .NET 程序集
【发布时间】:2010-03-13 04:53:41
【问题描述】:

我有一个我想运行的 Iron Python 脚本,然后让 ipy 解释器输出一个我可以在其他机器上运行的程序集。我怎么做?有没有可以传递给 ipy.exe 的开关?

【问题讨论】:

    标签: .net assemblies ironpython


    【解决方案1】:

    使用 SharpDevelop

    一种方法是使用SharpDevelop,它可以轻松构建程序集(可执行文件和类库)。

    过程很简单:

    • 创建 Python 解决方案(选择包括:类库、控制台或 Windows 应用程序)
    • 照常编写 Python 代码
    • 构建您的解决方案或项目

    .exe 和 .dll 文件将位于相关的构建输出目录(Debug 或 Release)中。


    使用 pyc.py

    ​​>

    另一种方法是调用 IronPython 命令行编译脚本 pyc.py.

    编译器脚本可以在目录中找到: [IP_install_dir]\Tools\Scripts

    用法:
    ipy.exe pyc.py /main:Program.py Form.py /target:winexe


    注意:要运行已编译的 exe,您需要与可执行文件位于同一目录中的以下文件:

    IronPython.dll
    IronPython.Modules.dll
    Microsoft.Dynamic.dll
    Microsoft.Scripting.Core.dll
    Microsoft.Scripting.Debugging.dll
    Microsoft.Scripting.dll
    Microsoft.Scripting.ExtensionAttribute.dll
    

    【讨论】:

      【解决方案2】:

      IronPython 附带了一个名为 Pyc 或 Python 命令行编译器的工具。如果您安装了 IronPython 的最新版本 2.6,那么 pyc.py 将在 C:\Program Files (x86)\IronPython 2.6\Tools\Scripts 或您在系统上安装 IronPython 的任何地方提供。如果您有早期版本的 IronPython,那么 pyc.py 将作为示例包中的单独下载提供。

      使用pyc.py,您可以从您的python 脚本创建控制台或Windows 程序集。基本用法如下:

      ipy pyc.py /out:myprogram.exe /main:mainfile.py /target:exe program.py support.py
      

      上面将生成一个名为 myprogram.exe (/out) 的程序集,它是一个控制台应用程序 (/target),将首先执行 mainfile.py (/main) 中的代码,还将包含来自 program.py 的代码和support.py 在程序集中。

      【讨论】:

      • 11 年后。我收到“系统找不到指定的文件”错误。我通过从命令行中删除“/out:myprogram.exe”来修复。这会导致 ipyc.exe 使用 main.exe 的默认输出文件名。
      【解决方案3】:

      也可以使用编译

      import clr
      clr.CompileModules("foo.dll","foo.py")
      

      对于 asp.net,如果你使用 pyc.py 编译,你将无法导入模块。他们希望在 2.6.2 或更高版本中修复该问题

      【讨论】:

        猜你喜欢
        • 2010-12-08
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 2014-02-27
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 2020-01-25
        相关资源
        最近更新 更多