Python distutils – кто-нибудь знает, как его использовать?

Я написал краткую программу на python, чтобы добавить GUI GUI в программу cli. Мне было интересно, как я могу создать установщик, используя distutils. Так как это просто интерфейс GUI для приложения командной строки, он работает только в * nix, так что я не беспокоюсь о том, что это кросс-платформа.

моя главная цель – создать пакет .deb для пользователей debian / ubuntu, но я не понимаю файлы make / configure. Я до сих пор был веб-разработчиком.

Спасибо за вашу помощь!

edit : Кто-нибудь знает проект, который использует distutils, чтобы я мог видеть его в действии и, вы знаете, на самом деле пытаетесь его построить?

Вот несколько полезных ссылок

  • Руководство по упаковке Ubuntu Python

    Это руководство очень полезно. Я не знаю, как я пропустил это во время моей начальной волны. Он даже проводит вас через упаковку существующего приложения python

  • Проект Ubuntu MOTU

    Это официальный пакет, поддерживающий проект на ubuntu. Любой может присоединиться, и есть много учебников и информации о создании пакетов, всех типов, которые включают вышеупомянутый «руководство по упаковке python».

  • «Python distutils to deb?» – Обсуждение форума Ars Technica

    Согласно этому разговору, вы не можете просто использовать distutils. Он не соответствует формату упаковки debian (или что-то в этом роде). Я думаю, именно поэтому вам нужен dh_make, как видно из руководства по упаковке Ubuntu

  • «Команда bdist_deb для distutils

    У этого есть интересное обсуждение (это также то, как я нашел руководство ubuntu) о конкатенировании zip-файла и скрипта оболочки для создания своего рода универсального исполняемого файла (что-либо с python и bash, который есть). странно. Дайте мне знать, если кто-нибудь найдет больше информации об этой практике, потому что я никогда не слышал об этом.

  • Описание формата deb и того, как distutils вписывается в список рассылки python

5 Solutions collect form web for “Python distutils – кто-нибудь знает, как его использовать?”

См. Простой пример distutils . Это в основном то, на что это похоже, кроме реальных сценариев установки, как правило, содержат немного больше информации. Однако я не видел никаких принципиально более сложных. По сути, вы просто даете ему список того, что нужно установить. Иногда вам нужно дать некоторые подсказки отображения, поскольку источник и установленные деревья могут быть не такими.

Вот пример реальной жизни (анонимный):

#!/usr/bin/python from distutils.core import setup setup (name = 'Initech Package 3', description = "Services and libraries ABC, DEF", author = "That Guy, Initech Ltd", author_email = "that.guy@initech.com", version = '1.0.5', package_dir = {'Package3' : 'site-packages/Package3'}, packages = ['Package3', 'Package3.Queries'], data_files = [ ('/etc/Package3', ['etc/Package3/ExternalResources.conf']) ]) 

apt-get install python-stdeb

Утилита для преобразования исходного кода Python в Debian

Этот пакет предоставляет некоторые инструменты для создания пакетов Debian из пакетов Python с помощью новой команды distutils, sdist_dsc. Для пакета Debian предусмотрены автоматические значения по умолчанию, но многие аспекты результирующего пакета могут быть настроены через файл конфигурации.

  • pypi-install запросит индекс пакета Python (PyPI) для пакета, загрузит его, создаст из него .deb и затем установит .deb.
  • py2dsc преобразует исходный tarball, созданный в distutils, в исходный пакет Debian.

Большинство программ Python будут использовать distutils. Django – один – см. http://code.djangoproject.com/svn/django/trunk/setup.py

Вы также должны прочитать документацию , так как она очень всеобъемлющая и имеет несколько хороших примеров.

Я нашел следующий учебник очень полезным. Он короче документации distutils и объясняет, как постепенно настраивать типичный проект.

distutils действительно не так уж сложно, как только вы получите его. На самом деле это просто вопрос о метаинформации (имя программы, автор, версия и т. Д.), А затем выбор файлов, которые вы хотите включить. Например, вот пример distutils setup.py модуля из довольно сложной библиотеки python:

Kamaelia setup.py

Обратите внимание, что это не касается каких-либо файлов данных или или чего-то еще, поэтому YMMV.

С другой стороны, я согласен с тем, что документация distutils, вероятно, является самой плохой документацией python. Он чрезвычайно инклюзивный в некоторых областях, но пренебрегает некоторой действительно важной информацией в других.

  • На каких системах / файловых системах есть os.open () atomic?
  • Как получить выход из subprocess.Popen ()
  • nginx фляга gunicorn python ... с чего начать?
  • Python OSError no 7 (слишком длинный список аргументов) в linux
  • Python импортирует и использует cdll (с файлом linux .so)
  • Я хочу подождать как файлового дескриптора, так и мьютекса, какой рекомендуемый способ сделать это?
  • Поиск таблицы маршрутов Python Linux
  • как использовать «/» (разделитель каталогов) в Linux и Windows?
  • Python - лучший язык программирования в мире.