Lunatic Python

Здесь обсуждается всё, что касается макросов.
Post Reply
Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Lunatic Python

Post by Shmuel » Tue 19 Jan, 2016 11:59

Данный модуль позволяет вызывать питон из луа и луа из питона. С точки зрения Far это даёт возможность пользоваться из макросов многочисленными библиотеками питона.

1. Установить Python 3.4 (поскольку 3.5 на XP не ставится).
2. Скопировать src\out\x86\python.dll (или src\out\x64\python.dll) в %FARPROFILE%\Macros\modules
3. Скопировать демо-макрос src\py-hash.lua в %FARPROFILE%\Macros\scripts

Оригинальная библиотека и документация - здесь.
Используемый форк этой библиотеки - здесь.
lunatic-python-20160122.7z
(107.24 KiB) Downloaded 32 times
Last edited by Shmuel on Fri 22 Jan, 2016 21:00, edited 1 time in total.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Lunatic Python

Post by Shmuel » Fri 22 Jan, 2016 20:59

Попробовал собрать майкрософтовскими средствами - всё заработало: и на x86, и на x64.
Обновлённая версия - в шапке.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Lunatic Python

Post by Shmuel » Tue 26 Jan, 2016 15:35

Доработал демо-макрос по подобию плагина "Hash calculator". Теперь этот макрос более полезен и эстетичен.

Вообще удивляет отсутствие интереса к данной библиотеке.

Smitis
Posts: 1441
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

Lunatic Python

Post by Smitis » Tue 26 Jan, 2016 19:37

Shmuel wrote:Вообще удивляет отсутствие интереса к данной библиотеке.
С моей точки зрения, Питон весьма неудобный язык (как и moonscript) для написания программ. На компьютере как скриптовый язык он мне не нужен.
Но, как дополнительная библиотека для lua может сгодиться, для Питона много чего понаписали. Но у меня "мобильная" версия ФАРа, синхронизируемая на нескольких компьютерах, пихать в неё ещё кучу файлов не хочется, итак объёмы растут. Тут бы разобраться, что действительно для работы Питона нужно. Экперимент показывает, что для данного примера достаточно python34.dll и несколько модулей из Lib (как я понял, реально используемые модули Питон предварительно компилирует в файлы *.pyc и помещает в папки __pycache__).
К сожалению, когда Питону чего-либо не хватает, ФАР при вызове макроса улетает в неизвестном направлении не попрощавшись. Вот бы какую-нибудь диагностику в виде сообщений типа "Не могу загрузить модуль zzzz" без падения ФАРа, это реализуемо?
Разум когда-нибудь победит.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Lunatic Python

Post by Shmuel » Tue 26 Jan, 2016 20:15

Smitis wrote: С моей точки зрения, Питон весьма неудобный язык (как и moonscript) для написания программ.
С этим не соглашусь, но ... о вкусах не спорят.
Smitis wrote: К сожалению, когда Питону чего-либо не хватает, ФАР при вызове макроса улетает в неизвестном направлении не попрощавшись. Вот бы какую-нибудь диагностику в виде сообщений типа "Не могу загрузить модуль zzzz" без падения ФАРа, это реализуемо?
Думаю, что всё реализуемо при условии вложения в проект нужного количества человеко-часов. Другой вопрос, произойдёт ли это.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Lunatic Python

Post by Shmuel » Sat 30 Jan, 2016 18:20

Демо-макрос: добавим прогресс-бар и возможность прерывать процесс нажатием Esc.

Smitis
Posts: 1441
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 12 times
Been thanked: 23 times
Contact:

Lunatic Python

Post by Smitis » Mon 01 Feb, 2016 14:06

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

Code: Select all

Traceback (most recent call last):
File "<string>", line 21, in CalcHash
TypeError: 'float' object cannot be interpreted as an integer
Предыдущий макрос работает нормально.

Win7 x64, FAR 4527 (и предыдущие) x86, Python 3.4.4 x86
Разум когда-нибудь победит.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

Lunatic Python

Post by Shmuel » Mon 01 Feb, 2016 14:18

Да, было такое, но уже исправлено.

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

Post Reply

Return to “Обсуждение макросов”

Who is online

Users browsing this forum: No registered users and 5 guests