Как импортировать сторонний модуль IronPython в.NET?

Я разработчик C#, и я должен использовать библиотеку IronPython в.NET Framework. Я протестировал каждый класс в Python, и он работает, но я не уверен, как вызвать библиотеку в классе C#.

Когда я пытаюсь позвонить в библиотеку, я получаю 'LightException' object has no attribute ошибка клиента

Я добавил lib, -x:Full frame, а также все модули в папке lib.

Вот код C#, который я использую для вызова библиотеки Python:

            Console.WriteLine("Press enter to execute the python script!");
            Console.ReadLine();
            var options = new Dictionary<string, object>();
            options["Frames"] = true;
            options["FullFrames"] = true;
            //var py = Python.CreateEngine(options);
                        //py.SetSearchPaths(paths);

            ScriptEngine engine = Python.CreateEngine(options);
            ICollection<string> paths = engine.GetSearchPaths();
            string dir = @"C:\Python27\Lib\";
            paths.Add(dir);
            string dir2 = @"C:\Python27\Lib\site-packages\";
            paths.Add(dir2);

            engine.SetSearchPaths(paths);
            ScriptSource source = engine.CreateScriptSourceFromFile(@"C:\Users\nikunjmange\Source\Workspaces\Visage Payroll\VisagePayrollSystem\VisagePayrollSystem\synapsepayLib\synapse_pay-python-master\synapse_pay\resources\user.py");
            ScriptScope scope = engine.CreateScope();
            source.Execute(scope);

            dynamic Calculator = scope.GetVariable("User");
            dynamic calc = Calculator();

            string inputCreate = "nik12@gmail.com";
            string result = calc.create(inputCreate);

1 ответ

  1. Ошибка вводит в заблуждение из-за ошибки в IronPython 2.7.5. Это должно быть ImportError,

  2. Не добавляйте обычный CPython stdlib; это не совместимо с IronPython. Вместо этого используйте stdlib IronPython.

Если у вас есть импорт import a.b as c это, вероятно, виновник; либо a, либо b не существует, но IronPython исправляет сообщение об ошибке.

Другие вопросы по тегам