Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Июнь 11, 2007 10:59:35

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

Собственно, subj.
Кто-нибуть пробовал использовать под *nix, в Mono?



Офлайн

#2 Июнь 11, 2007 14:41:52

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  2  -
Профиль   Отправить e-mail  

IronPython и Mono

А какой собственно вопрос интересует? Как поставить?



Офлайн

#3 Июнь 11, 2007 23:29:26

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

Да собственно, все интересует…
Работает ли на Mono, если да – то как поставить; есть ли какие-либо особенности в плане работы с Mono-библиотеками, отсутствующими в .NET (например GTK#) и т.д. и т.п.

К платформе вот присматриваюсь, но C# как язык – не больно-то впечатляет…



Офлайн

#4 Июнь 12, 2007 00:12:07

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  2  -
Профиль   Отправить e-mail  

IronPython и Mono

Artemios
К платформе вот присматриваюсь, но C# как язык – не больно-то впечатляет…
Синтаксис не понравился?

Многим подсказать не смогу т.к. не юзаю IronPython, но пару ссылок всегда смогу дать =)
1) IronPython on Mono howto
2) GTK# mit IronPython - Tutorium (сразу предупреждаю на немецком)
З.Ы. На русском искать, думаю, ничего не стоит т.к. у нас еще IronPython не получил достойного внимания.



Офлайн

#5 Июнь 12, 2007 10:41:33

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

Спасибо, посмотрю.



Офлайн

#6 Июнь 14, 2007 11:29:32

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

IronPython в Mono: взгляд новичка в .NET.

Оказалось все очень просто, даже устанавливать ничего не надо:
качаем архив с бинарниками IronPython, распаковываем, кроме прочего видим ipy.exe.
В консоли набираем: mono ipy.exe и вуаля, приглашение интерпретатора Python-а от Microsoft в линуксовой консоли :) Конечно можно раскидать по стандартным директориям, пути прописать, но это уже дело третее…
Естественно, Mono уже должно присутствовать.
Естественно, ничего кроме питоновского синтаксиса и доступа к .NET/Mono классам/библиотекам.
Одни люди советуют в site.py прописать пути до стандартных библиотек Python2.4 (CPython).
Конечно, что не pure python – не запустим. Другие люди постарались, и реализовали некоторое подмножество набора стандартных модулей Питона – проект FePy (http://fepy.sourceforge.net/).
Внешне такой модуль предоставляет знакомый и привычный интерфейс, внутри – организована работа с .NET классами.

Далее. Что тут у нас с GUI-интерфейсом?… Разработчики Mono по-видимому не любят WinForms и не спешат с их полной поддержкой (хотя некоторые формочки и под Mono работают); а потому здесь свой стандарт – GTK#. С другой стороны, разработчики Mono предоставляют свои библиотеки (в т.ч. GTK#) и для NET Framework под Windows.
Вот такой мой Hello world на Python-е (писал, глядя на немецкий вариант из ссылки alafin):
import clr
clr.AddReference(“gtk-sharp”)
import Gtk

class HelloWorld:
def hello(self, widget, data=None):
print “Hello World!”
def delete_event(self, widget, data=None):
Gtk.Application.Quit()
def __init__(self):
self.window = Gtk.Window(“Hello World!”)
self.window.DeleteEvent += self.delete_event
self.window.BorderWidth = 10
self.button = Gtk.Button(“Hello World!”)
self.button.Clicked += self.hello
self.window.Add(self.button)
def Show(self):
self.window.ShowAll()

if __name__ == “__main__”:
Gtk.Application.Init()
hi = HelloWorld()
hi.Show()
Gtk.Application.Run()
Конечно, не очень похоже на работу с pyGTK, но почти один-в-один как на C#.

Эх, жаль Qt 4.x еще к дотнету не привязали…

Порадовала ситуация со standalone:
вместо mono /path-to-IronPython/ipy.exe /path-to-my-program/myprogram.py
командую: mono /path-to-IronPython/ipy.exe -X:SaveAssemblies /path-to-my-program/myprogram.py
и получаю готовый “бинарник” myprogram.exe, запускаемый в Mono уже без ipy.exe.
Экзешник тянет за собой 2 dll-ки : IronPython.dll и IronMath.dll (если не считать самой .NET) и одинаково запускается на разных системах (пробовал в 32-битном и 64-битном линуксе, для win качаю сейчас Mono, но думаю и там будет все успешно)

В общем, впечатление от IronPython достаточно приятное.



Офлайн

#7 Июнь 14, 2007 11:31:56

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

Ой, а как код на вашем форуме форматируется?



Офлайн

#8 Июнь 14, 2007 15:09:38

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  2  -
Профиль   Отправить e-mail  

IronPython и Mono

Artemios
Ой, а как код на вашем форуме форматируется?
Ведущий тег должен выглядеть так code:python



Офлайн

#9 Июнь 16, 2007 07:49:48

Artemios
От:
Зарегистрирован: 2007-06-11
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

Спасибо!



Офлайн

#10 Сен. 29, 2008 23:53:22

netch
От:
Зарегистрирован: 2008-09-29
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

IronPython и Mono

Привет всем,

что-то мне реализация оного как минимум со стандартными питоновыми классами вызывает сильное подозрение…

вот например:

>>> sys = site.sys
>>> sys.path.append('/usr/local/lib/python2.5')
>>> import os
>>> os.open("/dev/tty", 0)
3
>>> os.open("/dev/tty", 0)
Traceback (most recent call last):
OSError: Sharing violation on path /dev/tty
>>> os.close(3)
>>> os.open("/dev/tty", 0)
Traceback (most recent call last):
OSError: Sharing violation on path /dev/tty
Или вот такое на стандартные дескрипторы:

>>> os.fstat(0)
Traceback (most recent call last):
OSError: file does not exist
такое впечатление, что ставится какая-то перехватывающая всё прослойка (кстати, по данным fstat'а этот якобы 3, вернутый из os.close(), совсем не 3)

fepy взамен не годится - мне нужны не просто сокеты, а ещё и общий select с ними и пайпами.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version