从IronPython 2.6脚本构建.exe时找不到模块“随机”

时间:2010-06-06 14:38:25

标签: python random ironpython sharpdevelop

我正在使用SharpDevelop从我的IronPython脚本构建可执行文件。唯一的障碍是我的脚本有线 随机导入 当我通过ipy.exe运行脚本时工作正常,但是当我尝试从SharpDevelop中的脚本构建并运行exe时,我总是收到消息:

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

为什么SharpDevelop'看不到'随机?我怎样才能看到它?

1 个答案:

答案 0 :(得分:2)

使用ipy.exe运行IronPython脚本时,Python标准库的路径通常取决于以下之一:

  1. IRONPYTHONPATH环境变量。
  2. ipy.exe旁边的lib \ site.py中的代码,它将Python标准库的位置添加到路径中。
  3. 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标准库的位置。

    5. 另一种选择是compile the parts of the Python Standard Library your application needs into one or more .NET assemblies。这样,您就不需要应用程序的最终用户安装Python标准库。