Next: , Previous: , Up: Руководство по упаковке   [Contents][Index]


22.6.8 Модули Python

В настоящее время мы поставляем пакеты Python 2 и Python 3 через переменную Scheme под именами python-2 и python в соответствии с Номера версий. Чтобы предотвратить путаницу и конфликты имён с другими языками программирования, желательно, чтобы имена пакетов с модулями Python содержали слово python.

Некоторые модули совместимы только с одной версией Python, другие - с обеими. Если пакет Foo скомпилирован с Python 3, мы называем его python-foo. Если он скомпилирован с Python 2, мы называем его python2-foo. Пакеты Python 2 удаляются из дистрибутива; пожалуйста, не присылайте новые пакеты Python 2.

Если проект уже содержит слово python, оно отбрасывается; например, модуль python-dateutil упаковывается под именем python-dateutil и python2-dateutil. Если имя проекта начинается с py (т.е. pytz), мы оставляем такое имя и добавляем префикс, как это описано выше.

Примечание: В настоящий момент в Guix существует две системы сборки для пакетов Python: python-build-system and pyproject-build-system. В течение долгого времени, пакеты Python собирались из файла setup.py file, для которого нет официальной спецификации. Это работало удивительно прекрасно, учитывая успех языка Python, но при такого подходе было тяжело построить инструментаж. В конечном итоге, появилось несколько альтернативных систем сборки, и сообщество в конце концов сошлось на формальном стандарте для описания требований сборки. Система pyproject-build-system является Guixовским воплощением этого стандарта. Она считается “экспериментальной” в том смысле, что ещё не поддерживает все из различных бэкендов сборки PEP-517, но мы поощряем её использование для новых пакетов Python, и просим сообщать об обнаруженных проблемах. Рано или поздно она будет упразднена и объединена в python-build-system.

22.6.8.1 Перечисление зависимостей

Информация о зависимостях для пакетов Python обычно находится в исходном коде пакета, с различной степенью точности: в файлах pyproject.toml, setup.py, requirements.txt, и в файле tox.ini (в последнем указываются в основном зависимости для выполнения тестов).

При написании рецепта сборки пакета Python ваша задача — сопоставить эти зависимости к должному типу “input” (see inputs). Хотя импортёр pypi обычно отрабатывает хорошо (see Вызов guix import), желательно пройтись по приведённому чек-листу, чтобы узнать, какая зависимости куда уходит.


Next: Модули Perl, Previous: Пакеты Emacs, Up: Руководство по упаковке   [Contents][Index]