4

我正在使用 SharpDevelop 从我的 IronPython 脚本构建可执行文件。唯一的问题是我的脚本有行 import random ,当我通过 ipy.exe 运行脚本时它工作正常,但是当我尝试从 SharpDevelop 中的脚本构建和运行 exe 时,我总是收到以下消息:

IronPython.Runtime.Exceptions.ImportException: No module named random

为什么 SharpDevelop 不是随机“看到”的?我怎样才能让它看到它?

4

1 回答 1

3

当您使用 ipy.exe 运行 IronPython 脚本时,Python 标准库的路径通常由以下之一确定:

  1. IRONPYTHONPATH 环境变量。
  2. lib\site.py 中 ipy.exe 旁边的代码,用于将 Python 标准库的位置添加到路径中。

SharpDevelop 生成的 IronPython 可执行文件不会执行这些初始设置任务。因此,您需要在导入随机库之前添加一些额外的启动代码。以下是您可以执行此操作的几种方法:

  1. 直接将 Python 标准库的位置添加到 sys.path 中。

    import sys
    sys.path.append(r'c:\python26\lib')
    
  2. 从 IRONPYTHONPATH 环境变量中获取 Python 标准库的位置。

    from System import Environment
    pythonPath = Environment.GetEnvironmentVariable("IRONPYTHONPATH")
    import sys
    sys.path.append(pythonPath)
    
  3. 从注册表中读取 Python 标准库的位置 (HKLM\Software\Python\PythonCore\2.6\PythonPath)。

  4. 从应用程序附带的单独配置文件中读取 Python 标准库的位置。

另一种选择是将应用程序需要的 Python 标准库的部分编译成一个或多个 .NET 程序集。这样,您将不需要应用程序的最终用户来安装 Python 标准库。

于 2010-06-06T18:51:21.703 回答