Форум сайта python.su
igor.kaistДа, но где тогда, простите, setup.py? :) Если это “обычный” модуль Python, как его заюзать? В архиве есть “helloform.py”, и там в начале вот такое грязное ругательство:
Python for .NET, насколько я понял, служит для интеграции net и питона. То есть в своем скрипте на питоне ты сможешь использовать возможности платформы NET (типа как используется win api)
import System.Windows.Forms as WinFormsШо це таке? Я конечно понимаю, что System.Windows.Forms — это пространство имён дотнета. Но это уже не похоже на язык Python, вот в чём дело.
Отредактировано (Янв. 24, 2009 13:32:15)
Офлайн
igor.kaistВопрос в том, обязан ли я собирать каждый раз exe-шник. (Например, в Boo — не обязан.) Кто там чего интерпретирует, по барабану, в данном контексте.
Ну так интерпретирует то байт код платформа .NET
Отредактировано (Янв. 24, 2009 13:33:48)
Офлайн
В 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
И этот байт код одинаков, независимо от того, на каком языке была написана программа
Офлайн
Спасибо, один из вопросов снят :).
Офлайн
The gray CardinalТолько что взял парочку не очень монстроподобных модулей с python.org и попробывал их ставить. Поставился только один (registry 0.3.0 / прибабах для работы с виндовым реестром)…. но и он стабильно не стал работать, а крашился то на одном, то на другом.
2. Можно ли в IronPython установить и использовать модули “обычного” Python? И имеет ли смысл вообще подобная постановка вопроса?
Офлайн
NightmareZДа уж, оптимистично :lol:. Вот по этой ссылке есть раздел “Extension Modules” (это информация по старой версии IronPython, а по новой версии разработчики выложить такую инфу не удосужились). Судя по этой информации, поддержка модулей вроде как есть, но список проблем слишком велик. Т.е. о многочисленных существующих модулях Python, получается, следует забыть, реально можно работать только с дотнетом. В общем, невесело: IronPython — это не Python.
Мой оптимистичный вердикт таков: ставить можно, а вот будут ли работать - это как повезёт.
Офлайн
Вот здесь:
Андрей СветловПонять бы, что значит “Питон от него - стандартный”. Жду ответа, как соловей лета :)…
Почти год интенсивно использую python.net
После него не вполне понятно, зачем мне нужен IronPython.
Заметьте, Питон от него - стандартный, C Extestions работают отлично и т.д.
Офлайн
уточняю:
модули для стандартного питона работать под .net в принципе смогут, когда кто-нить сделать полный порт стандартных библиотек питона под .net.
наверное частично это сделано, но.. ironpython предназначен для работы с .net библитеками, которые ессно сильно отличаются от питоновских.
компилятора там нет, в том смысле, что классы ironpython не могут быть в принципе скомпилированы как .net классы (в отличие от boo), по той же причине,
почему на основе python кода нельзя автоматически сгенерировать С++ классы.
то что выдает тот ‘компилятор’ - это все равно интерпретируемый (медленный) код, поэтому это транслятор в байт-код, который выполняется .net машиной не напрямую,
а через IronPython.dll, DLR, …
>> интерпретатор Boo получает в командной строке текстовый файл скрипта и исполняет его.
это да, только он предварительно любой скрипт компилирует в реальный код, и потом только его исполняет.
>>Возможно, тогда уж лучше использовать Boo.
во много раз лучше.
Офлайн
george
Спасибо, понятно.
Получается, что IronPython — это морская свинка, которая не имеет отношения ни к морю, ни к свиньям. Все модули для стандартного Python, которые и составляют реальную мощь языка, там практически бесполезны (не запустятся вовсе или будут преподносить глюки), а как дотнетовский язык IronPython безобразен — его нельзя скомпилировать так же, как полноценные дотнетовские языки, и он будет всегда медленнее чуть ли не на порядок.
Осталось понять, что из себя представляет “Python for .NET” :).
Отредактировано (Янв. 25, 2009 19:35:41)
Офлайн
Python for .NET это модуль стандарного C-Python, позволяющий вызывать функции .net - библиотек. К примеру в .net есть pear-2-pear модуль (а-ля Napster), в Python нет,
вот можешь написать скрипт для обычного питона, который ее подымет и включит.
Офлайн