2010-06-06 33 views
3

我正在使用SharpDevelop從我的IronPython腳本構建可執行文件。唯一的麻煩是,我的腳本有 導入隨機 ,當我通過ipy.exe運行腳本時工作正常,但是當我試圖從SharpDevelop中的腳本構建並運行exe時,我總是收到消息:從IronPython 2.6腳本構建.exe文件時找不到「random」模塊

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

爲什麼SharpDevelop看不見隨機?我怎樣才能讓它看到它?

回答

2

當您運行與ipy.exe的IronPython的腳本的路徑,Python標準庫通常從以下的一個決定:

  1. 的IRONPYTHONPATH環境變量。
  2. 代碼位於ipy.exe旁邊的lib \ site.py中,它將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標準庫的位置。

另一種選擇是compile the parts of the Python Standard Library your application needs into one or more .NET assemblies。這樣您就不需要應用程序的最終用戶安裝Python標準庫。

相關問題