Сведения о вопросе

Kirushaa

23:10, 7th August, 2020

Теги

python   linux   installer   debian   distutils    

Как использовать Python distutils?

Просмотров: 527   Ответов: 5

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

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

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

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

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

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

  • Проект Ubuntu MOTU

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

  • "Python distutils to deb?"-обсуждение на форуме Ars Technica

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

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

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

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



  Сведения об ответе

park

03:50, 29th August, 2020

Смотрите простой пример 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']) 
          ])


  Сведения об ответе

DAAA

11:55, 4th August, 2020

apt-get install python-stdeb

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

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

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


  Сведения об ответе

Chhiki

04:55, 27th August, 2020

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


  Сведения об ответе

piter

09:12, 8th August, 2020

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

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


  Сведения об ответе

piter

01:21, 14th August, 2020

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

Камаэлия setup.py

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

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться