.net - 部署 IronPython 脚本或静态构建应用程序

标签 .net python windows ironpython ironpython-studio

我创建了一个 IronPython 脚本,它从 Python 库(例如 ossys 等)以及 .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 将是您的程序。

    1. 在您的项目文件夹(MyProgram.py 所在的位置)中,创建一个名为“deploy”的文件夹。
    2. 在命令提示符下运行 cd deploy
    3. 运行 "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/

相关文章:

windows - FTP 客户端 Filezilla 和 Ftpuse 可以工作,但 Windows 资源管理器无法使用 PASV 模式

python - pip 错误 "No matching distribution found for perceptilabs"

.net - .NET 是否有贝叶斯过滤器库

python - Ansible Playbooks 中 IP 范围的正则表达式匹配以进行分组

c# - 遍历一个对象并找到非空属性

python - 常量折叠的具体规则是什么?

Python弱依赖项目的打包

windows - 对于批处理中的命令

.net - 在 DataTemplate 中使用 TextSearch.Text

mysql - BCrypt 验证存储的密码哈希