Die Einbettung von IronPython in einer C# - Anwendung - import-Fehler auf das urllib

Habe ich eine Python-Datei mit Inhalt:

import re
import urllib

class A(object):
    def __init__(self, x):
        self.x = x

    def getVal(self):
        return self.x

    def __str__(self):
        return "instance of A with value '%s'" % (self.getVal())

Ich habe auch eine einfache C# - konsolenprojekt mit dem folgenden code:

engine = Python.CreateEngine();

ScriptSource source = engine.CreateScriptSourceFromFile("test.py");
ScriptScope scope = engine.CreateScope();
ObjectOperations op = engine.Operations;

source.Execute(scope); //class object created

object klaz = scope.GetVariable("A"); //get the class object
object instance = op.Call(klaz, "blabla waarde"); //create the instance
object method = op.GetMember(instance, "getVal"); //get a method

string result = (string)op.Call(method); //call method and get result (9)
Console.WriteLine("Result: " + result); //output: 'Result: blabla waarde'

(Ich habe diese aus diese stackoverflow-querstion und Antwort)

Wenn ich die die das urllib import-Anweisung in der Python-Datei funktioniert alles einwandfrei. (das heißt, Sie findet das re-Modul)

Aber sobald ich entweder hinzufügen import urllib oder import urllib2 bekomme ich die folgende exception:

ImportException was unhandled
No module named urllib

Also irgendwie kann es nicht finden, die das urllib. Ich habe in der IronPython-lib-Ordner und sowohl das urllib und das urllib 2 sind definitiv vorhanden.
Dieselbe Ausnahme wird geworfen, wenn ich das urllib import in der C# - code. (engine.ImportModule("urllib");)

Irgendwelche Ideen?

Ich möchte zur Verwaltung der Einfuhren in der python-code und nicht in der C# - code.

(So möchte ich vermeiden, Dinge wie diese: engine.ImportModule("urllib");)

Edit:
Einige zusätzliche Infos darüber, was ich bin eigentlich Los, um diese zu verwenden für (hat jemand vielleicht eine alternative):

Ich habe eine C# Anwendung und den python-Skripts verwendet werden als Erweiterungen oder plugins, die für die Haupt-Anwendung.

Ich bin mit Python, so dass ich nicht brauchen, um zu kompilieren alle plugins.

Schreibe einen Kommentar