Найти - Пользователи
Полная версия: Не импортируются некоторые модули при выполнении скрипта из C#
Начало » Python для .Net » Не импортируются некоторые модули при выполнении скрипта из C#
1
julia-soft
Добрый день!

При выполнении скрипта IronPython из программы на С# путем вызова методов из сборок Microsoft.Scripting и IronRython (сборки в составе IronRython 2.7) некоторые базовые модули не импортируются. К примеру, успешно импортируется sys, но не импортируются string, os, threading и time… При выполнении CompiledCode.Execute выпадает исключение “Модуль … не найден”. В результате мне не удается отработать в скрипте sleep, а очень нужно ((
P.S. при запуске того же скрипта через execfile в ipy все отрабатывается без проблем…
Shaman
Всё верно - рантайм энжайн ничего не знает об установленном дистрибутиве IronPython. Нужно явно указать пути к библиотеке. Что-то вроде
var sp = eng.GetSearchPaths();
sp.Add(Environment.CurrentDirectory);
sp.Add(Path.Combine(Environment.CurrentDirectory, @"Lib"));
sp.Add(Path.Combine(Environment.CurrentDirectory, @"Lib\site-packages"));
// и т.д.
eng.SetSearchPaths(sp);
Хочу обратить внимание, на данный момент встраиваемый движок IP имеет проблемы с освобождением памяти.
julia-soft
Большое спасибо!!!
Дело, правда, было не в этом, с путями энжн вполне разбирается самостоятельно
Оказалось, я просто забыла добавить ссылку на сборку IronPython.Modules
Но если бы не Вы, я бы и не подумала сравнивать dll'ки по сёрчпафам…
Shaman
Рад, что у Вас всё получается.
julia-soft
с путями энжн вполне разбирается самостоятельно
Угу, знаем мы его.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB