2009-11-18 6 views
7

L'importation suivante fonctionne à l'intérieur de l'invite ipy.exe mais échoue en utilisant IronPython ScriptRuntime dans un programme C# 4.0.IronPython ScriptRuntime équivalent à CPython PYTHONPATH

import ConfigParser 

code 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 utilise la variable d'environnement PYTHONPATH. Comment est-ce que je configure ceci dans IronPython en utilisant ScriptRuntime?

Répondre

13

Vous souhaitez utiliser GetSearchPaths et SetSearchPaths sur votre objet moteur. Vous pouvez analyser la variable d'environnement de votre choix et remplir le chemin de recherche lorsque vous initialisez votre moteur. Par exemple:

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

L'interpréteur IronPython (ipe.exe) utilise la variable d'environnement IRONPYTHONPATH. Cela peut être une bonne idée de lire cela dans SetSearchPaths, selon l'application. –