Wenn ich versuche, einen Verweis auf eine IronPython-Engine-Instanz hinzuzufügen, wird das Referenzget den Referenzen wie erwartet hinzugefügt. Wenn ich eine andere Instanz der Engine erstelle, wird die AddReference ohne einen Fehler ausgeführt, aber die Referenz wird den Referenzen nicht hinzugefügt, und Importanweisungen schlagen mit "kein Modul namens ..." fehl.Warum schlägt clr.AddReference auf der zweiten IronPython-Engine fehl?
var engine = Python.CreateEngine();
dynamic clr = engine.Runtime.GetClrModule();
clr.AddReference("IronPython.StdLib");
var references = (IEnumerable<Assembly>)clr.References;
Debug.Assert(references.Any(asm => asm.FullName.StartsWith("IronPython.StdLib"))); // ok
var source = "import pydoc\npydoc.plain(pydoc.render_doc(str))";
var result = engine.Execute<string>(source);
Debug.Assert(result.StartsWith("Python Library Documentation")); // ok
var engine2 = Python.CreateEngine();
dynamic clr2 = engine2.Runtime.GetClrModule();
clr2.AddReference("IronPython.StdLib");
var references2 = (IEnumerable<Assembly>)clr.References;
Debug.Assert(references2.Any(asm => asm.FullName.StartsWith("IronPython.StdLib"))); // fails
result = engine.Execute<string>(source); // throws ImportException "no module named pydoc"
Debug.Assert(result.StartsWith("Python Library Documentation"));
ich versuchte, mit der binären Freisetzung von Iron 2.7.5 (to GAC installiert ist) und 4,5 # C ist IronPython.StdLib
eine vorkompilierte DLL des Pythons Standard lib mit pyc.
Ich habe auch mit selbst kompilierten IronPython 2.7.5 und 2.7.6 von Github versucht, aber dort die erste engine.execute
schlägt bereits mit , obwohl die Referenz hinzugefügt wird.
Mache ich etwas falsch oder ist es nur ein Fehler?