我创建了一个 IronPython 脚本,它从 Python 库(例如 os
、sys
等)以及 .NET 库中导入。
它在我的 Visual Studio IronPython 解决方案中运行得非常好,但我需要部署它,以便其他没有安装 IronPython 或 Python 的人可以运行它。
我该怎么做?
最佳答案
要求:
ipy.exe
位于C:\Program Files (x86)\IronPython 2.7.1\
pyc.py
位于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...
错误。
在我的例子中,我得到了:
Unhandled Exception: IronPython.Runtime.Exceptions.ImportException: No module na med os
...
要解决此问题,请将 C:\Program Files (x86)\IronPython 2.7.1\
中的 Lib
文件夹复制到 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
文件夹并发送它!
关于.net - 部署 IronPython 脚本或静态构建应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750213/