Мы продолжаем PyGObject серия программирования с вами на рабочем столе Linux, в 4-й В этой части серии мы расскажем, как упаковать программы и приложения, которые мы создали для рабочего стола Linux, используя PyGObject в качестве пакета Debian.
Пакеты Debian (.deb) являются наиболее часто используемым форматом для установки программ в Linux, «dpkg»Система, которая занимается .deb пакеты - это значение по умолчанию для всех дистрибутивов Linux на основе Debian, таких как Ubuntu и Linux Mint. Вот почему мы будем объяснять только, как упаковывать наши программы для Debian.
Во-первых, вы должны иметь некоторые базовые знания о создании пакетов Debian, это следующее руководство вам очень поможет.
Вкратце, если у вас есть проект под названием «моя программа”Он должен содержать следующие файлы и папки, чтобы вы могли его упаковать.
Конечно.. Есть много других файлов и папок, которые вы можете включить в свой проект (фактически, вы можете включать все, что захотите), но это основные из них.
Теперь приступим к упаковке проекта. Создайте новую папку под названием «моя программа», Создайте файл с именем«моя программа»И добавьте к нему следующий код.
#! / usr / bin / python # - * - coding: utf-8 - * - ## Замените свое имя и адрес электронной почты. # Мое имя <[электронная почта защищена]> ## Здесь вы должны добавить лицензию файла, заменив «MyProgram» на название вашей программы. # Лицензия: # MyProgram - бесплатное программное обеспечение: вы можете # распространять и / или изменять его в соответствии с условиями GNU General Public Лицензия, опубликованная # Free Software Foundation, либо версия 3 Лицензии, либо # (по вашему выбору) любая более поздняя версия. версия. # # MyProgram распространяется в надежде, что она будет полезной, # но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемой гарантии ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ. Подробнее см. Стандартную общественную лицензию # GNU. # # Вы должны были получить копию Стандартной общественной лицензии GNU # вместе с MyProgram. Если нет, см.. from gi.repository import Gtk import os class Handler: def openterminal (self, button): ## Когда пользователь нажимает первую кнопку, открывается терминал. os.system ("x-terminal-emulator") def closeprogram (self, button): Gtk.main_quit () # Здесь ничего нового.. Мы только что импортировали файл ui.glade. строитель = Gtk. Builder () builder.add_from_file ("/ usr / lib / myprogram / ui.glade") окно builder.connect_signals (Handler ()) = builder.get_object ("window1") window.connect ("удаление-событие", Gtk.main_quit) window.show_all () Gtk.main ()
Создать ui.glade файл и заполните его этим кодом.
1.0UTF-8 Создано с помощью glade 3.16.1
До сих пор нет ничего нового... Мы только что создали файл Python и его интерфейсный файл. Теперь создайте "setup.py”В той же папке и добавьте к нему следующий код, каждая строка поясняется в комментариях.
# Здесь мы импортировали модуль 'setup', который позволяет нам устанавливать скрипты Python в локальную систему, помимо выполнения некоторых других задач, вы можете найти документацию здесь: https://docs.python.org/2/distutils/apiref.html из настройки импорта distutils.core (name = "моя программа", # Название программы. версия = "1.0", # Версия программы. description = "Простой в использовании веб-интерфейс для легкого создания и обмена пастами", # Здесь вам не нужна помощь. author = "TecMint", # Ни сюда. author_email = "[электронная почта защищена]", # И здесь: D url ="http://example.com", # Если у вас есть веб-сайт для вашей программы.. положи сюда. лицензия = 'GPLv3', # Лицензия программы. скрипты = ['моя программа'], # Это имя основного файла сценария Python, в нашем случае это «myprogram», это файл, который мы добавили в папку «myprogram». # Здесь вы можете выбрать, где вы хотите установить файлы в локальной системе, файл "myprogram" будет автоматически установлен в его правильное место позже, поэтому вам нужно только выбрать, где вы хотите установить дополнительные файлы, которые вы формируете с помощью скрипта Python data_files = [ ("lib / myprogram", [" ui.glade "]), # Будет установлен файл" ui.glade "по пути / usr / lib / myprogram. ("поделиться / приложения", [" myprogram.desktop "])]) # И это установит файл .desktop в папку / usr / share / applications, все папка автоматически устанавливается в папку / usr в корневом разделе, вам не нужно добавлять "/ usr / в дорожка.
Теперь создайте "myprogram.desktop”В той же папке и добавьте следующий код, который также объясняется в комментариях.
# Это файл .desktop, этот файл отвечает за отображение вашего приложения в меню приложений в любой интерфейс рабочего стола, важно добавить этот файл в свой проект, вы можете просмотреть более подробную информацию об этом файле из здесь: https://developer.gnome.org/integration-guide/stable/desktop-files.html.en [Desktop Entry] # Имя программы по умолчанию. Name = My Program # Название программы на арабском языке, это имя будет использоваться для отображения приложения под меню приложений, если языком по умолчанию в системе является арабский, используйте коды языков, чтобы изменить имя для каждого язык. Имя [ar] = برنامجي # Описание файла. Комментарий = Простая тестовая программа, разработанная мной. # Описание файла на арабском языке. Комментарий [ar] = برنامج تجريبي بسيط تم تطويره بواسطتي. # Команда, которая будет выполняться при запуске приложения из меню приложений, вы можете ввести имя Скрипт Python или полный путь, если хотите, например / usr / bin / myprogram Exec = myprogram # Вы хотите запускать свою программу из Терминал? Terminal = false # Оставьте так. Type = Application # Введите имя значка, который вы хотите использовать для приложения, вы можете ввести путь для значка, а также /usr/share/pixmaps/icon.png, но не забудьте сначала включить файл icon.png в папку проекта, а в файл setup.py как хорошо. Здесь мы пока будем использовать значок «система». Icon = system # Категория файла, вы можете просмотреть доступные категории на сайте freedesktop. Категории = GNOME; GTK; Полезность; StartupNotify = false
Мы почти закончили... Нам просто нужно создать несколько небольших файлов в разделе «дебиан», Чтобы предоставить информацию о нашем пакете для«dpkg" система.
Открой "дебиан»И создайте следующие файлы.
контроль. соотв. журнал изменений. правила.
контроль: Этот файл содержит основную информацию о пакете Debian, для получения более подробной информации посетите Поля управления пакетами Debian.
Источник: myprogram. Сопровождающий: My Name <[электронная почта защищена]> Раздел: utils Приоритет: необязательно Standards-Version: 3.9.2 Build-Depends: debhelper (> = 9), python2.7 Package: myprogram Архитектура: все Зависит от: python-gi Описание: Моя программа Здесь вы можете добавить краткое описание вашего программа.
совместить: Это просто важный файл для системы dpkg, он просто включает в себя магическое число 9, оставьте это как есть.
9.
журнал изменений: Здесь вы сможете добавить изменения, которые вы вносите в свою программу. Для получения дополнительной информации посетите Источник журнала изменений пакета Debian.
myprogram (1.0) надежный; urgency = medium * Добавьте сюда новые функции. * Продолжайте добавлять здесь новые изменения. * И здесь. - Мое имя здесь <[электронная почта защищена]l.com> Сб, 27 дек 2014 21:36:33 +0200.
правила: Этот файл отвечает за запуск процесса установки на локальном компьютере для установки пакета, вы можете просмотреть дополнительную информацию
об этом файле отсюда: Правила пакета Debian по умолчанию.
Хотя для вашей программы на Python больше ничего не понадобится.
#! / usr / bin / make -f # Этот файл отвечает за запуск процесса установки на локальном компьютере для установки пакета, вы можете просмотреть дополнительную информацию об этом файле здесь: https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#defaultrules Хотя вам больше ничего не понадобится для вашей программы Python. %: dh [электронная почта защищена] override_dh_auto_install: python setup.py install --root = debian / myprogram --install-layout = deb --install-scripts = / usr / bin / # Это запустит файл setup.py для установки программы как скрипт Python в системе, он также установит скрипт "myprogram" в / usr / bin / с помощью параметра --install-scripts, НЕ ЗАБУДЬТЕ ЗАМЕНИТЬ "myprogram" ВАШЕЙ ПРОГРАММОЙ НАЗВАНИЕ. override_dh_auto_build:
Итак, мы успешно создали все необходимые файлы для нашей программы, теперь давайте приступим к ее упаковке. Во-первых, перед началом убедитесь, что вы установили некоторые зависимости для процесса сборки.
$ sudo apt-get update. $ sudo apt-get install devscripts.
А теперь представьте, что «моя программаПапка находится в вашей домашней папке (/home/user/myprogram), чтобы упаковать его как пакет Debian, выполните следующие команды.
$ cd / home / user / myprogram. $ debuild -us -uc.
[электронная почта защищена]: ~ / Проекты / myprogram $ debuild -us -uc dpkg-buildpackage -rfakeroot -D -us -uc. dpkg-buildpackage: исходный пакет myprogram. dpkg-buildpackage: исходная версия 1.0. dpkg-buildpackage: надежный исходный код. dpkg-buildpackage: источник изменен на «Мое имя здесь». <[электронная почта защищена]> dpkg-source - перед сборкой myprogram. dpkg-buildpackage: архитектура хоста i386. fakeroot debian / rules clean. dh чистый. dh_testdir. dh_auto_clean... ... Закончил запуск линтиан.
И это все! Ваш пакет Debian был успешно создан:
Чтобы установить его в любом дистрибутиве на основе Debian, запустите.
$ sudo dpkg -i myprogram_1.0_all.deb.
Не забудьте заменить указанный выше файл названием пакета. Теперь после установки пакета вы можете запустить программу из меню приложений.
И будет работать ..
Здесь заканчивается 4-й часть нашей серии о PyGObject.. В следующем уроке мы объясним, как легко локализовать приложение PyGObject, а пока следите за обновлениями…