2009-11-18 14 views
7

Der folgende Import funktioniert innerhalb der Eingabeaufforderung ipy.exe, schlägt aber mit IronPython ScriptRuntime in einem C# 4.0-Programm fehl.IronPython ScriptRuntime entspricht CPython PYTHONPATH

import ConfigParser 

C# -Code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using IronPython.Hosting; 
using Microsoft.Scripting.Hosting; 

namespace CSharpDynamic 
{ 
    class Program 
    { 
     static int Main(string[] args) 
     { 
      ScriptRuntime python = Python.CreateRuntime(); 
      dynamic dynamicIni = 
python.UseFile(@"c:\test\WebCast\DynamicIni.py"); 

      return 0; 
     } 
    } 
} 

CPython verwendet PYTHONPATH-Umgebungsvariable. Wie konfiguriere ich dies in IronPython bei Verwendung von ScriptRuntime?

Antwort

13

Sie möchten GetSearchPaths und SetSearchPaths für Ihr Engine-Objekt verwenden. Sie können die env-Variable Ihrer Wahl analysieren und den Suchpfad auffüllen, wenn Sie Ihre Engine initialisieren. Beispiel:

var engine = Python.CreateEngine(DefaultEngineOptions()); 
var paths = engine.GetSearchPaths(); 
paths.Add("c:\\my_libs"); 
engine.SetSearchPaths(paths); 
+4

Der IronPython-Interpreter (ipe.exe) verwendet die Umgebungsvariable IRONPYTHONPATH. Je nach Anwendung kann es sinnvoll sein, dies auch in SetSearchPaths zu lesen. –