Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 23, 2013 13:51:56

julia-soft
Зарегистрирован: 2013-04-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не импортируются некоторые модули при выполнении скрипта из C#

Добрый день!

При выполнении скрипта IronPython из программы на С# путем вызова методов из сборок Microsoft.Scripting и IronRython (сборки в составе IronRython 2.7) некоторые базовые модули не импортируются. К примеру, успешно импортируется sys, но не импортируются string, os, threading и time… При выполнении CompiledCode.Execute выпадает исключение “Модуль … не найден”. В результате мне не удается отработать в скрипте sleep, а очень нужно ((
P.S. при запуске того же скрипта через execfile в ipy все отрабатывается без проблем…

Офлайн

#2 Апрель 23, 2013 15:53:29

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Не импортируются некоторые модули при выполнении скрипта из C#

Всё верно - рантайм энжайн ничего не знает об установленном дистрибутиве 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 имеет проблемы с освобождением памяти.

Отредактировано Shaman (Апрель 23, 2013 15:54:39)

Офлайн

#3 Апрель 24, 2013 10:25:04

julia-soft
Зарегистрирован: 2013-04-23
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Не импортируются некоторые модули при выполнении скрипта из C#

Большое спасибо!!!
Дело, правда, было не в этом, с путями энжн вполне разбирается самостоятельно
Оказалось, я просто забыла добавить ссылку на сборку IronPython.Modules
Но если бы не Вы, я бы и не подумала сравнивать dll'ки по сёрчпафам…

Офлайн

#4 Апрель 24, 2013 11:49:21

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Не импортируются некоторые модули при выполнении скрипта из C#

Рад, что у Вас всё получается.

julia-soft
с путями энжн вполне разбирается самостоятельно
Угу, знаем мы его.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version