Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2009 13:24:06

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

igor.kaist
Python for .NET, насколько я понял, служит для интеграции net и питона. То есть в своем скрипте на питоне ты сможешь использовать возможности платформы NET (типа как используется win api)
Да, но где тогда, простите, setup.py? :) Если это “обычный” модуль Python, как его заюзать? В архиве есть “helloform.py”, и там в начале вот такое грязное ругательство:
import System.Windows.Forms as WinForms
Шо це таке? Я конечно понимаю, что System.Windows.Forms — это пространство имён дотнета. Но это уже не похоже на язык Python, вот в чём дело.



Отредактировано (Янв. 24, 2009 13:32:15)

Офлайн

#2 Янв. 24, 2009 13:27:57

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

igor.kaist
Ну так интерпретирует то байт код платформа .NET
Вопрос в том, обязан ли я собирать каждый раз exe-шник. (Например, в Boo — не обязан.) Кто там чего интерпретирует, по барабану, в данном контексте.



Отредактировано (Янв. 24, 2009 13:33:48)

Офлайн

#3 Янв. 25, 2009 00:20:55

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

vanished

В IronPython интерпретатор есть. Исполнимый файл его называется ipy.exe
У меня, например, он завалялся по такому пути: C:\Program Files\IronPython 2.0\ipy.exe
С ним можно работать в интерактивном режиме.

Есть ipyw.exe
Ему мы можем передать путь к скрипту и данный скрипт будет выполнен. При этом не выскочит консоль.

Есть и компилятор, который генерирует обычную .net-сборку, как C# и Visual Basic. Убедиться в этом (что это обычная сборка) можно с помощью рефлектора.

Единственное отличие при компиляции питона от, например, C# в том, что недостаточно конечному пользователю поставить .NET Framework, а нужно с исполнимым файлом (или библиотекой классов) поставлять ещё пару DLL (IronPython.dll, IronMath.dll …)

The gray Cardinal
Вопрос в том, обязан ли я собирать каждый раз exe-шник. (Например, в Boo — не обязан.) Кто там чего интерпретирует, по барабану, в данном контексте.
Нет, не обязан.

igor.kaist
Ну так интерпретирует то байт код платформа .NET
И этот байт код одинаков, независимо от того, на каком языке была написана программа
Скажем так,
можно скомпилировать код IronPython'а в байт-код .NET'а (называемый также MSIL или CIL) и потом выполнять его под управлением .NET Framework,
а можно запустить интерпретатор IronPython'а (работающий тоже под .NET Framework) и этот интерпретатор будет интерпретировать непосредственно питоновский код (без компиляции в CIL).



Офлайн

#4 Янв. 25, 2009 00:45:24

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

Спасибо, один из вопросов снят :).



Офлайн

#5 Янв. 25, 2009 03:34:26

NightmareZ
От: Симферополь
Зарегистрирован: 2009-01-08
Сообщения: 40
Репутация: +  0  -
Профиль   Адрес электронной почты  

vanished

The gray Cardinal
2. Можно ли в IronPython установить и использовать модули “обычного” Python? И имеет ли смысл вообще подобная постановка вопроса?
Только что взял парочку не очень монстроподобных модулей с python.org и попробывал их ставить. Поставился только один (registry 0.3.0 / прибабах для работы с виндовым реестром)…. но и он стабильно не стал работать, а крашился то на одном, то на другом.

Мой оптимистичный вердикт таков: ставить можно, а вот будут ли работать - это как повезёт.



Офлайн

#6 Янв. 25, 2009 10:54:28

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

NightmareZ
Мой оптимистичный вердикт таков: ставить можно, а вот будут ли работать - это как повезёт.
Да уж, оптимистично :lol:. Вот по этой ссылке есть раздел “Extension Modules” (это информация по старой версии IronPython, а по новой версии разработчики выложить такую инфу не удосужились). Судя по этой информации, поддержка модулей вроде как есть, но список проблем слишком велик. Т.е. о многочисленных существующих модулях Python, получается, следует забыть, реально можно работать только с дотнетом. В общем, невесело: IronPython — это не Python.

Возможно, тогда уж лучше использовать Boo.



Офлайн

#7 Янв. 25, 2009 10:58:23

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

Вот здесь:

Андрей Светлов
Почти год интенсивно использую python.net
После него не вполне понятно, зачем мне нужен IronPython.
Заметьте, Питон от него - стандартный, C Extestions работают отлично и т.д.
Понять бы, что значит “Питон от него - стандартный”. Жду ответа, как соловей лета :)…



Офлайн

#8 Янв. 25, 2009 16:27:47

george
От:
Зарегистрирован: 2006-06-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

уточняю:
модули для стандартного питона работать под .net в принципе смогут, когда кто-нить сделать полный порт стандартных библиотек питона под .net.
наверное частично это сделано, но.. ironpython предназначен для работы с .net библитеками, которые ессно сильно отличаются от питоновских.
компилятора там нет, в том смысле, что классы ironpython не могут быть в принципе скомпилированы как .net классы (в отличие от boo), по той же причине,
почему на основе python кода нельзя автоматически сгенерировать С++ классы.
то что выдает тот ‘компилятор’ - это все равно интерпретируемый (медленный) код, поэтому это транслятор в байт-код, который выполняется .net машиной не напрямую,
а через IronPython.dll, DLR, …

>> интерпретатор Boo получает в командной строке текстовый файл скрипта и исполняет его.
это да, только он предварительно любой скрипт компилирует в реальный код, и потом только его исполняет.

>>Возможно, тогда уж лучше использовать Boo.
во много раз лучше.



Офлайн

#9 Янв. 25, 2009 19:27:10

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

george
Спасибо, понятно.
Получается, что IronPython — это морская свинка, которая не имеет отношения ни к морю, ни к свиньям. Все модули для стандартного Python, которые и составляют реальную мощь языка, там практически бесполезны (не запустятся вовсе или будут преподносить глюки), а как дотнетовский язык IronPython безобразен — его нельзя скомпилировать так же, как полноценные дотнетовские языки, и он будет всегда медленнее чуть ли не на порядок.

Осталось понять, что из себя представляет “Python for .NET” :).



Отредактировано (Янв. 25, 2009 19:35:41)

Офлайн

#10 Янв. 25, 2009 20:33:49

george
От:
Зарегистрирован: 2006-06-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

vanished

Python for .NET это модуль стандарного C-Python, позволяющий вызывать функции .net - библиотек. К примеру в .net есть pear-2-pear модуль (а-ля Napster), в Python нет,
вот можешь написать скрипт для обычного питона, который ее подымет и включит.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version