LINUX.ORG.RU

Питоноэлектрон. Есть такой?

 , , , ,


0

3

Привет всем!

Чувствую, сейчас в меня полетят томаты (в лучшем случае)...

Никакого проекта конкретного у меня нет на данный момент, просто заинтересовался таким вопросом:
Есть ли что-то Electron-подобное, но с Python'ом вместо JavaScript'а? Т.е. движок HTML+CSS+плюс другие Web-технологии, вроде SVG, но без JavaScript. Чтобы можно было обращаться к DOM прямо из Python-кода.
Зачем это надо? Ну, например, сделать UI на SVG, а логику написать на Python'е.

Я пока нагуглил только вот такую штуку: https://github.com/cztomczak/cefpython
Но, насколько я понимаю:
* JavaScript там всё равно есть и использовать его придётся.
* С DOM из Python'а работать нельзя.
* По сути это RPC между двумя языками, с лишними накладными расходами на преобразование туда-обратно.
Хотелось бы без этих трёх пунктов.

Кто что думает?

★★★★

Ответ на: комментарий от i-rinat

https://www.transcrypt.org/examples

Не, это не то, это не настоящий Python. Тут не получится использовать нужные библиотеки. Да и я не хочу использовать Python в браузере. Собственно и браузер не нужен. Я хочу движок html+svg+css+(может быть что-то ещё) с binding'ами для Python'а.

ls-h ★★★★ ()
Ответ на: комментарий от xDShot

дальше работаешь в питоне

Вполне возможно, что в сложном случае получится хуже, чем просто писать на JS. Полезут всякие костыли. Насколько я понял, это RPC со всякими ограничениями из-за различий в языках.

ls-h ★★★★ ()

Мало нам electron, являющимся бичом современного UI и UX, и мало нам поделий на питоне, являющемся бичом современного айти в целом и общем, так еще и совмещать эти две гадости? Мсье знает толк в извращениях.

lovesan ★☆ ()

Наверное, что-то при взгляде извне понять просто невозможно. Но всё-таки, чем это концептуально лучше, чем, скажем, PyQt+QML? В некоторых таких программах интерфейс настолько произвольный (а ведь суть именно в этом, да?), что никакими стандартными виджетами там даже и не пахнет!

toyo-chi ()
Ответ на: комментарий от ls-h

Ну тогда можно очень упороться и сделать всё самостоятельно! Взять какой-нибудь BeautifulSoup, какую-нибудь библиотеку для SVG и веб-компонент впридачу. Написать макет в HTML, нарисовать SVG. И пусть BS парсит HTML, отдавая обратно DOM, пригодный для издевательств изменений. Его, соответственно, изменить в соответствии с замыслом, вставить в него SVG и всякое такое. Потом через тот же BS скомпоновать всё это обратно в HTML, и передать его в веб-компонент — и пусть тот его потом рендерит. И вот так на каждое действие со страницей. Только ещё придумать, как заставить веб-компонент передавать эти действия куда следует в основную программу. Может быть, даже будет работать!

Есть, правда, некоторое ощущение, что с такой, не побоюсь этого слова, архитектурой всё это будет даже ещё хуже, чем электрон. Ну, если оно вообще способно заработать хоть как-нибудь. Но кого это когда-нибудь останавливало?

toyo-chi ()
Ответ на: комментарий от gedisdone

Безопасность, воспроизводимость сборок и защита от supply chain attacks. Я намедни пытался одну приблуду на электроне из исходников собрать. Запнулся на том, когда эта шняга выкачала откуда-то бинарник 7zip для упаковки чего-то вместо того, чтобы системный использовать.

hateyoufeel ★★★★★ ()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

когда эта шняга выкачала откуда-то бинарник 7zip для упаковки чего-то вместо того, чтобы системный использовать.

у тебя на этой операции место на диске закончилось?

dib2 ★★★★★ ()
Ответ на: комментарий от dib2

Нет, у меня этот бинарник не запустился из-за других путей в библиотекам. На этом я решил, что какая-то срань, скачивающая левые бинарники с левых сайтов, мне не очень нужна.

hateyoufeel ★★★★★ ()
Ответ на: комментарий от TomBOY

Flask ?

Это только backend, а front всё равно надо будет делать традиционным способом, на JS. Мне же интересно, можно ли использовать какой-либо движок непосредственно из Python'а.

ls-h ★★★★ ()

Это не совсем ответ на вопрос , но я бы рекомендовал посмотреть webview и соответствующая обёртка webview-python, ИМХО в 10^9 лучше электрона, да и могу ошибаться, но я всегда думал, что как раз js и node.js это как раз главная фишка электрона.

AKonia ()
Последнее исправление: AKonia (всего исправлений: 1)
Ответ на: комментарий от AKonia

webview

Посмотрел. Не очень понял, что это. Я могу тут получить доступ к DOM'у? Могу повесить обработчики на события (клик мышкой, нажатия на клавиатуру, т.п.)?

ls-h ★★★★ ()
Ответ на: комментарий от ls-h

Да, по сути всё что можно сделать в WK браузере можно сделать и тут, но правда насколько я понял, функция обратного вызова вешается одна и определять конкретное событие придётся вручную.

AKonia ()