Каковы варианты использования для дистрибутива Python?

Я разрабатываю дистрибутив для пакета Python, который я пишу, чтобы опубликовать его на PyPI. Это мой первый опыт работы с distutils, setuptools, distribute, pip, setup.py и все такое, и я немного борюсь с кривой обучения, которая намного круче, чем я ожидал 🙂

У меня возникла небольшая проблема с тем, чтобы некоторые файлы моих тестовых данных были включены в tarball, указав их в параметре data_files в setup.py, пока я не столкнулся с другим сообщением, в котором я указал на файл MANIFEST.in . Именно тогда я заметил, что то, что вы включаете в tarball / zip (используя MANIFEST.in), и то, что установлено в пользовательской среде Python, когда они делают easy_install или что-то другое (на основе того, что вы указываете в setup.py ), является двумя очень разные вещи; в общем, в tarball гораздо больше, чем на самом деле устанавливается.

Это сразу вызвало у меня запах кода и осознание того, что для распределения должно быть более одного варианта использования; Я был зафиксирован только на том, с кем я действительно участвовал, используя easy_install или pip для установки библиотеки. И затем я понял, что разрабатываю рабочий продукт, где у меня было лишь частичное понимание конечных пользователей, для которых я развивался.

Поэтому мой вопрос заключается в следующем: «Каковы варианты использования для дистрибутива Python, кроме установки его в среде Python? Кто еще я обслуживаю этот дистрибутив и что им больше всего нравится?»

Вот некоторые из рабочих проблем, которые я еще не выяснил, которые несут ответ:

  • Разве разумно включать все, что находится под контролем источника (git) в дистрибутиве источника? В эпоху github кто-нибудь загружает дистрибутив источника, чтобы получить доступ к полному источнику проекта? Или я должен просто разместить ссылку на мой репозиторий github? Не включит в себя все раздувание дистрибутива и заставляет загружаться для людей, которые просто хотят его установить, дольше?

  • Я собираюсь разместить документацию на readthedocs.org. Имеет ли смысл включать HTML-версии документов в исходный дистрибутив?

  • Кто-нибудь использует python setup.py test для запуска тестов в дистрибутиве источника? Если да, то в чем их роль и в какой ситуации они находятся? Я не знаю, стоит ли мне заниматься этой работой, и если да, то для кого это нужно.

One Solution collect form web for “Каковы варианты использования для дистрибутива Python?”

Некоторые вещи, которые вы, возможно, захотите включить в исходный дистрибутив, но, возможно, не установите:

  • лицензия на пакет
  • набор тестов
  • документация (возможно, обработанная форма, такая как HTML в дополнение к исходному файлу)
  • возможно, любые дополнительные скрипты, используемые для создания исходного дистрибутива

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

Основная причина, почему вы делаете это, когда эти файлы доступны в Интернете или через контроль версий, – это то, что люди знают, что у них есть версия документов или тестов, которые соответствуют используемому ими коду.

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

Что касается людей, желающих запустить тестовый пакет, у меня есть ряд моих модулей Python, упакованных в различные дистрибутивы Linux, и иногда получаю отчеты об ошибках, связанные с ошибками тестирования в их среде. Я также использовал тестовые комплекты модулей других людей, когда сталкивался с ошибкой, и хочу проверить, ведет ли внешний код себя, как ожидает автор в моей среде.

  • Добавьте аргументы Python в строку скрипта скрипта (скрипт, созданный с помощью buildout и zc.recipe.egg: scripts)
  • Пакет Python: файлы данных правильно помещаются в файл tar.gz, но не установлены в виртуальную среду
  • «Setup.py upload» не работает с «Ошибка загрузки» (401): вы должны быть идентифицированы для редактирования информации о пакете »
  • appscript на OSX 10.6.3 / Python 2.6.1
  • Как настроить setuptools для python 2.6 на Windows?
  • Как запустить набор тестов в python setup.py
  • Будет ли setuptools работать с python 3.2.x
  • Различия между распределением, distutils, setuptools и distutils2?
  • Определение версии easy_install / setuptools
  • Какова минимальная структура каталогов, чтобы заставить setuptools работать с one_file.py?
  • Как исключить один файл из пакета с setuptools и setup.py
  •  
    Interesting Posts for Van-Lav

    Проверка подлинности флаконов

    является ли getPerspectiveTransform сломанным в opencv python2 wrapper?

    Tensorflow – литье из int, чтобы плавать странное поведение

    Асинхронные фоновые процессы с web2py

    Open Source ETL framework

    Одновременно используйте функции ввода () и print () (например, в чате)

    Написание текста с диакритическим («nikud», отметки вокализации) с использованием PIL (Python Imaging Library)

    Как справиться с сообщением «слишком много экземпляров-атрибутов» Pylint?

    Как сделать несколько графиков на одной странице с помощью matplotlib?

    несколько действий в понимании списка python

    Отложенный срок выполнения запроса превышен, но работа никогда не начиналась

    python, вставляющий переменную строку в качестве имени файла

    Как проверить переменную объект класса или нет

    Каков хороший способ найти относительные пути в Google App Engine?

    Python, «фильтрованное» редактирование строк, чтение stdin с помощью char без эха

    Python - лучший язык программирования в мире.