Kross, ой . как моного вопросов, все делается в редаторе notepad++, по старинке на коленке, плагинУважаемый, 2boom
Среда, разработки:
Я нашёл их две наиболее популярные
1.PyCharm - сайт здесь. Проф среда разработки конкретно под Python. Плюсов очень много смотрите на сайте. Минус главный - платная основа , хотя есть и обрезанный вариант бесплатной версии
2. Eclipse – сайт расположен здесь. Рекомендуют скачивать именно версию Eclipse IDE for Java Developers. Это бесплатный инструмент разработки на базе Java.
На Маке, обязательно должна быть установлена Java Development Kit версии 7 (помимо самой Java). Это нужно для корректной работы необходимого плагина PyDev под Eclipse (для успешной работы на Python).
В принципе по начальной настройке и использованию связки Eclipse+PyDev+eGit+enigma2 можно почитать здесь, правда только на английском, но всё в принципе понятно и на «пальцах». Так же первоначальнаую настройку, с подробностями на русском, нашёл здесь (до абзаца "Наш первый скрипт") и здесь.
Как прикрутить к нашему проекту библиотеки enigma2 очень подробно изложено на английском здесь.
В связи с бесплатностью и богатыми возможностями Eclipse остановим свой выбор на нем.
Создание проекта в Eclipse:
1. Для начала, на нашем ресивере, необходимо установить пакет для монтирования удаленного диска ресивера к нашему ноутбуку. Я установил в ресивере пакет самба (samba). Хотя можно воспользоваться и любым другим протоколом: FTP или AFP. Затем добавил в свой конфиг самбы следующий фрагмент:
Файл /etc/samba/smb.configКод: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
В итоге, после монтирования в Finder (Cmd+K),
на моем ноуте появился раздел Enigma2
2. Создаём проект в Eclipse. Назовём его, например RatedRecord.
File->New->PyDev Project (если этого пункта в меню нет, значит что то с Java DK- см. выше)
3. Выбираем PyDev Project
Тут остановимся по подробнее:
Изначально в Mac OS X уже установлен Python версии 2.7., однако в последних версиях Vu Duo+ используется Python версии 3.2, поэтому, если есть такая необходимость (если Вы пишите плагин под Vu Duo+), то устанавливаем предварительно (до установки Eclipse) необходимую Вам версию Python с официального сайта.
Всё эти манипуляции, с установкой интерпретатора, нам необходимы с целью проверки синтаксиса нашего проекта (не более), так как сам проект будет запускаться на ресивере.
4. Теперь необходимо добавить файлы проекта (см ниже). Выбираем имя нашего проекта (в нашем случае RatedRecords) в левом окне и жмем на правую клавишу мыши. В появившемся меню выбираем пункт New->Link to Existing Source и в появившемся окне выбираем вторую сверху клавишу Browse и затем выбираем наш примонтированный диск и выбираем папку нашего проекта, которая должна находится по этому пути (предварительно её надо создать на ресивере) /usr/lib/enigma2/python/Plugins/Extension/ИМЯ_ВАШЕГО_ПРОЕКТА. После чего если файлы в ней уже были, то они добавятся в Ваш проект и Вы их сможете их редактировать с подсветкой синтаксиса.
5. Теперь “прикрученный” ранее нами git enigma2 (см. здесь) необходимо скопировать в папку проекта. Для этого на названии enigma2 жмем правую клавишу мыши и выбираем пункт Move…
Далее выбираем папку нашего проекта и новое имя (я набрал Enigma) и Ок.
6. Теперь необходимо добавить папку проекта нашей Enigma в переменную PYTHONPATH:. Для этого жмём на названии нашего проекта правой клавишей мыши и выбираем пункт Properties и в появившемся окне выбираем пункт с левой стороны PyDev – PYTHONPATH и во вкладке Source Folders нажимаем кнопку Add source folder. Далее выбираем нашу папку Enigma и жмем Ок.
Пункты 5 и 6 необходимы для того, чтобы у Вас начала работать автоматическая подстановка модулей, классов, функций и переменных из библиотеки enigma2 в нашем новом проекте.
Таким образом теперь у нас есть возможность удобно работать с нашим новым проектом: добавлять новые файлы, редактировать старые и они будут тут же меняться на нашем ресивере, так же комфортно работать с уже написанными ранее модулями и библиотеками enigma2.
О примерной стурктуре и начальном содержании файлов Вашего проекта см. ниже.
Отладка:
Для успешной отладки Ваших модулей использую следующие скрипты и шаги.
1. Для отладки нам необходимо подключиться к ресиверу либо по telnet, либо по ssh протоколам. Остановимся на проверенном ssh.
Чтобы не вводить каждый раз пароль при входе в ssh, смотрим сюда.
2. Для удалённого управления ресивером я использую программу iDreamX для Mac OS X. Очень удобно: На вкладке Управление->Управление Вы можете управлять пультом и тут же видеть результат на экране.
Либо второй вариант это использование web интерфейса самого ресивера (менее удобно).
В обоих этих вариантах есть один недостаток: не всегда возможно разобрать отладочные сообщения на «скриншотах». Для этой цели служит третий вариант с использованием программы снятия «cкриншота» с OSD (выполняем в терминале удалённо на ресивере):Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Из примера видно, что снимки экрана OSD сохраняются в формате jpg с 80% качеством, в папку (которую надо создать заранее) /usr/lib/enigma2/python/Plugins/Extensions/ИМЯ_ПАПКИ_ВАШЕГО_ПРОЕКТА/screenshots. Поэтому, мы сможем их быстро взять из указанной папки и просмотреть на своём ноутбуке на ранее примонтированном разделе Enigma2.
3. Для удалённой перезагрузки enigma2 есть несколько вариантов команд (выполняем на удалённой машине ресивера):
Вариант №1 - безобидный вариант))Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Вариант №2 – используя API web интерфейса (надёжный вариант)Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Вариант №3 - самый безопасный вариантКод: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Вариант №4 – снятие лога инигмы (иногда вводит ресивер в "подвисание»)Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
ВНИМАНИЕ: Для полной перезагрузки enigma2 требуется как минимум 40 сек. Поэтому прежде чем что либо делать на ресивере и смотреть логи дайте ему время для перезапуска примерно около минуты
ВНИМАНИЕ: Всё варианты рабочие, при вводе и копировании внимательно следите за всеми знаками которые приводятся здесь!
Я использую Вариант №4. Он отлично подходит для снятия лога Инигмы в файл и последующего анализа ошибок, например вот таким образом:
Для мониторинга лога загрузки инигмы в реальном времени:Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Для просмотра сообщений которые касаются конкретно Вашего проекта:Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Как пример: у меня файл проекта назван - RatedRecords. В ssh сесcии пишу следующееКод: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Файл лога ./enigma2.log сохраняется в текущую папку.
4. Так же в целях отладки проекта желательно использовать следующую структуру проекта (как пример ):
1. RatedRecords – папка проекта
1.1. __init__.py – пустой как правило файл (см. доку по Python)
1.2. plugin.py – файл необходимый для отладки и правильной работы Вашего плугина. Имя не меняем (см доку по написанию скриптов для enigma2 ).
1.3. MainScreen2.py (как пример) – код Вашего проекта.
1.4. Screen2.py (как пример) – код Вашего проекта.
………
1.N. ScreenN.py (как пример) – код Вашего проекта.
Ниже приведу коды обоих файлов:
Файл plugin.py:Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Пример MainScreen.py:Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Данный код полностью рабочий. Проверен на моем ресивере Vu Duo+ (GI S9895 HD)!
Код в файле plugin.py предназначен для того, чтобы:
1. В случае ошибки, Вы смогли получить вывод отладочной информации на экран телевизора на зеленом фоне (так называемая “зеленка”)
2. Чтобы каджый раз не перегружать инигму при очередном редактировании файлов Вашего проекта (в нашем случае MainScreen.py). Т.е. если Вы поправили свои файлы проектов, которые Вы указали при импорте в plugin.py (MainScreen.py, Screen2.py и пр.), то Вы дальше можете смело нажимать виртуальные клавиши пульта и смотреть что получилось, через iDreamX.
Правда это не касается самого файла plugin.py. В случае его редактирования Вам придется воспользоваться одним из описанных выше вариантов перезагрузки enigma2.
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Например так:Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.или такВам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.ВНИМАНИЕ! Если Вы входите удалённо используя логин отличный от root, то ко всем последующим командам в начале строки добавляете команду sudo. Например так:Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.или Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра. Зависит от установщика пакетов.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Скорее всего будет стоять версия2.X. В случае если стоит версия 3.Х, то по настройке можно глянуть например здесь Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Например так:Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Важно! Нам необходимо поставить права и разрешения на весь путь следования до нашей папки MyProject. В противном случае мы так и не увидим присоединённой папку нашего проекта((Это значит необходимо сделать следующее:
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.На большинстве других имиджей используется другой установщик пакетов, потому наверняка команда будет следующей Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.ВНИМАНИЕ! На разных имиджах настройки пакета могут находиться в разных директориях, но почти всегда в корневой папке /etc. Для того чтобы узнать где лежит тот или иной файл наберите простую командуИ добавляем, если там еще нет, следующие строки:Код: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.в нашем случае делаемКод: [Выделить]Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра. a) Первая строка подключает иконку которая будет появляться у Вас на ноутбуке при монтировании тома по AFP протоколу. Здесь стоит иконка от AppleTV (возможные параметры RackMac, PowerBook, PowerMac, Macmini, iMac, MacBook, MacBookPro, MacBookAir, MacPro,AppleTV1,1, AirPort)Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра. Которая будет в реальном времени показывать обновляемый лог на экране нашего терминального окна в сессии ресивера.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.И добавляем туда строки которые позволяют нам монтировать необходимые папки (в нашем случае): Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра. a) Первая строчка монтирует директорию нашего проекта с меткой «MyProject» и доступна она будет только созданному нами пользователю user1.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.

Описанный ниже код предназначен для сохранения исходных файлов Вашего проекта из указанной директории (источник) - в указанную Вами директорию (архив).
Вы можете по своему усмотрению добавлять сохранение необходимых расширений файлов. По умолчанию (без указания фильтруемых расширений) сохраняются все файлы в указанной папке.
Древовидная структура сохранения исходных файлов следующая:
/ПАПКА_АРХИВА/НАЗВАНИЕ_ПРОЕКТА/
|- /ИМЯ_ИСХОДНОГО_ФАЙЛА_1
|- /ДАТА_1_МОДИФИКАЦИИ_ФАЙЛА_1/
|- /ДАТА_2_МОДИФИКАЦИИ_ФАЙЛА_1/
|- /..../
|- /ДАТА_N_МОДИФИКАЦИИ_ФАЙЛА_N/
|- /ИМЯ_ИСХОДНОГО_ФАЙЛА_2
|- /ДАТА_1_МОДИФИКАЦИИ_ФАЙЛА_2/
|- /ДАТА_2_МОДИФИКАЦИИ_ФАЙЛА_2/
|- /..../
|- /ДАТА_N_МОДИФИКАЦИИ_ФАЙЛА_N/
|-....
|- /ИМЯ_ИСХОДНОГО_ФАЙЛА_N
|- /ДАТА_1_МОДИФИКАЦИИ_ФАЙЛА_N/
|- /ДАТА_2_МОДИФИКАЦИИ_ФАЙЛА_N/
|- /..../
|- /ДАТА_N_МОДИФИКАЦИИ_ФАЙЛА_N/
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра. 
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.и вызвать необходимые функции (как описано в коде файла plugin.py), либо разкомментировать строки внизу файла Backup.py, указав в процедуре main() необходимые параметры (см. ниже) и запустить файл Backup.py отдельно.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Я лично храню всё в гите. Там видно историю изменений. Работаю в Фёдоре 12. Эклипсом не пользуясь, он слишком тяжёлый, поэтому пишу в gEdit. Remote gebug слишком тормознутый, поэтому для отладки вывожу логи и снимаю их с ком порта.Уважаемый munche, благодарю Вас за ответ в теме данной.
).







Ничего сложного в снятии логов с ком порта не вижу. Есть одно НО. Я пишу на С/С++ поэтому для меня вывести логи не проблема. Питона уже лет 5 не мучал....
Если вы запустите на виртуальной машине, то поймете в чем тормознутость и тяжесть эклипса. Ну и субъективно, после кодежира в нем сидеть... ну только ели очень припрет
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.Dobrodel, будет у вас лог в ком порт идти зависит от того как собрано ядро и от переменныхВот теперь всё встало на свои места.