Форум сайта python.su
Добрый день!
При выполнении скрипта IronPython из программы на С# путем вызова методов из сборок Microsoft.Scripting и IronRython (сборки в составе IronRython 2.7) некоторые базовые модули не импортируются. К примеру, успешно импортируется sys, но не импортируются string, os, threading и time… При выполнении CompiledCode.Execute выпадает исключение “Модуль … не найден”. В результате мне не удается отработать в скрипте sleep, а очень нужно ((
P.S. при запуске того же скрипта через execfile в ipy все отрабатывается без проблем…
Офлайн
Всё верно - рантайм энжайн ничего не знает об установленном дистрибутиве 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);
Отредактировано Shaman (Апрель 23, 2013 15:54:39)
Офлайн
Большое спасибо!!!
Дело, правда, было не в этом, с путями энжн вполне разбирается самостоятельно
Оказалось, я просто забыла добавить ссылку на сборку IronPython.Modules
Но если бы не Вы, я бы и не подумала сравнивать dll'ки по сёрчпафам…
Офлайн
Рад, что у Вас всё получается.
julia-softУгу, знаем мы его.
с путями энжн вполне разбирается самостоятельно
Офлайн