【问题标题】:deploying IronPython script or static building an application部署 IronPython 脚本或静态构建应用程序
【发布时间】:2023-08-30 08:34:01
【问题描述】:
我创建了一个 IronPython 脚本,它从 Python 库(例如 os、sys 等)以及 .NET 库中导入。
它在我的 Visual Studio IronPython 解决方案中运行得非常好,但我需要部署它,以便其他没有安装 IronPython 或 Python 的人可以运行它。
我该怎么做?
【问题讨论】:
标签:
.net
python
windows
ironpython
ironpython-studio
【解决方案1】:
要求:
-
ipy.exe in C:\Program Files (x86)\IronPython 2.7.1\
-
pyc.py in C:\Program Files (x86)\IronPython 2.7.1\Tools\Scripts\
-
MyProgram.py 将是你的程序。
- 在您的项目文件夹(
MyProgram.py 所在的位置)中,创建一个名为“deploy”的文件夹。
- 在命令提示符下运行
cd deploy。
- 运行
"C:\Program Files (x86)\IronPython 2.7.1\ipy.exe" "C:\Program Files (x86)\IronPython 2.7.1\Tools\Scripts\pyc.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:没有名为 os 的模块
...
要解决此问题,请将 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 文件夹并发送它!