【发布时间】:2010-03-13 04:53:41
【问题描述】:
我有一个我想运行的 Iron Python 脚本,然后让 ipy 解释器输出一个我可以在其他机器上运行的程序集。我怎么做?有没有可以传递给 ipy.exe 的开关?
【问题讨论】:
标签: .net assemblies ironpython
我有一个我想运行的 Iron Python 脚本,然后让 ipy 解释器输出一个我可以在其他机器上运行的程序集。我怎么做?有没有可以传递给 ipy.exe 的开关?
【问题讨论】:
标签: .net assemblies ironpython
一种方法是使用SharpDevelop,它可以轻松构建程序集(可执行文件和类库)。
过程很简单:
.exe 和 .dll 文件将位于相关的构建输出目录(Debug 或 Release)中。
另一种方法是调用 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
【讨论】:
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 在程序集中。
【讨论】:
也可以使用编译
import clr
clr.CompileModules("foo.dll","foo.py")
对于 asp.net,如果你使用 pyc.py 编译,你将无法导入模块。他们希望在 2.6.2 或更高版本中修复该问题
【讨论】: