Форум сайта python.su
Собственно, subj.
Кто-нибуть пробовал использовать под *nix, в Mono?
Офлайн
А какой собственно вопрос интересует? Как поставить?
Офлайн
Да собственно, все интересует…
Работает ли на Mono, если да – то как поставить; есть ли какие-либо особенности в плане работы с Mono-библиотеками, отсутствующими в .NET (например GTK#) и т.д. и т.п.
К платформе вот присматриваюсь, но C# как язык – не больно-то впечатляет…
Офлайн
ArtemiosСинтаксис не понравился?
К платформе вот присматриваюсь, но C# как язык – не больно-то впечатляет…
Офлайн
Спасибо, посмотрю.
Офлайн
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 достаточно приятное.
Офлайн
Ой, а как код на вашем форуме форматируется?
Офлайн
ArtemiosВедущий тег должен выглядеть так code:python
Ой, а как код на вашем форуме форматируется?
Офлайн
Спасибо!
Офлайн
Привет всем,
что-то мне реализация оного как минимум со стандартными питоновыми классами вызывает сильное подозрение…
вот например:
>>> 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
Офлайн