2009-11-18 12 views
7

La seguente importazione funziona all'interno del prompt ipy.exe ma non riesce a utilizzare IronPython ScriptRuntime all'interno di un programma C# 4.0.IronPython ScriptRuntime equivalente a CPython PYTHONPATH

import ConfigParser 

codice C#:

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 utilizza variabile d'ambiente PYTHONPATH. Come posso configurarlo in IronPython quando utilizzo ScriptRuntime?

risposta

13

Si desidera utilizzare GetSearchPaths e SetSearchPaths sull'oggetto motore. È possibile analizzare la variabile env di propria scelta e compilare il percorso di ricerca quando si inizializza il motore. Ad esempio:

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

L'interprete IronPython (ipe.exe) utilizza la variabile di ambiente IRONPYTHONPATH. Potrebbe essere una buona idea leggerlo anche in SetSearchPaths, a seconda dell'applicazione. –