我创建了一个IronPython脚本,该脚本从Python库(如os
、sys
等)以及.NET库导入。
它在我的Visual Studio IronPython解决方案中运行得非常好,但我需要部署它,以便其他没有安装IronPython或Python的人可以运行它。
我该怎么做?
要求:
C:Program Files (x86)IronPython 2.7.1
中的ipy.exe
C:Program Files (x86)IronPython 2.7.1ToolsScripts
中的pyc.py
-
MyProgram.py
将是您的计划。- 在项目文件夹(
MyProgram.py
所在的位置)中,创建一个名为"deploy"的文件夹 - 在命令提示符下运行
cd deploy
- 运行
"C:Program Files (x86)IronPython 2.7.1ipy.exe" "C:Program Files (x86)IronPython 2.7.1ToolsScriptspyc.py" /main:..MyProgram.py /target:exe
- 在项目文件夹(
这将为deploy
文件夹中的MyProgram生成一个dll和一个exe。
如果您尝试运行MyProgram.exe
,并且正在导入像os
这样的库,则可能会得到No module named ...
。
因为,我使用的是os
,所以我得到了这个错误:
如果运行"MyProgram.exe"并且使用标准库,则可能会出现No module named...
错误。
就我而言,我得到了:
未处理的异常:IronPython.Runtime.Exceptions.ImportException:没有模块…
要解决此问题,请将Lib
文件夹从C:Program Files (x86)IronPython 2.7.1
复制到您刚刚创建的deploy
文件夹中。然后,在导入抛出错误的库之前,修改MyProgram.py
如下:
import sys
sys.path.append("Lib")
# Followed by library imports that were causing you trouble:
import os
最后一步,将以下文件从C:Program Files (x86)IronPython 2.7.1
复制到deploy
文件夹:
-IronPython.dll
-IronPython.Modules.dll
-Microsoft.Dynamic.dll
-Microsoft.Scripting.dll
现在,您可以压缩您的deploy
文件夹并发货!