Еквівалент Maven для python [закрито]


146

Я розробник Java / python, і мені не вистачає своїх функцій Maven, зокрема управління залежностями та автоматизації побудови (я маю на увазі, що ви не будуєте, але як створити пакет для розгортання?)

Чи є еквівалент пітона для досягнення цих особливостей?
Примітка: я використовую python 2.x

Дякую.

Відповіді:


70

Python використовує distutils та setuptools для залежності та упаковки.

Ось підручник, в якому пояснюються основи: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

Коротше кажучи, у вас буде файл setup.py, який має залежність та компіляцію / встановлення скриптів, і ви можете створювати з ним яйця, dist tarballs, binary tarballs тощо.


6
Оскільки дорого відійшов Марк Пілігрим закрив цю ділянку, тут є дзеркало на активному стані .
джиггі

2
Я рекомендую оновити це, щоб вказати на Посібник користувача програми Python Packaging, оскільки це зараз є авторитетним посібником.
kojiro

38

Прямої відповідності немає. Однак найближчі ви можете отримати:

  • zc.buildout : Він може налаштовувати закриті середовища, завантажувати / обробляти залежності, ініціалізувати сценарії тощо. Він також будується на плагінах (або "рецептах", як їх називають). Я використовував його кілька років тому, коли він був у бета-стадіях, ймовірно, він розвивався з тих пір. Існує крива навчання, як у Мейвена, але вона також найпотужніша.

Інші пропозиції - це підмножини Maven / zc.buildout:

  • Налаштування : створення / установка пакету
  • Піп : управління залежністю
  • Virtualenv + virtualenvwrapper : управління окремими середовищами python (те, що вам не потрібно для Java)

Ви, мабуть, знаєте сценарій з мурахами та оболонками, тому ви можете перевірити також ці інструменти Python:

  • Тканина або бруківка : бігунки із командним рядком із доданими ароматами. Вони загортають ваше традиційне виконання командного рядка в python і дозволяють керувати різними завданнями більш потужним чином (залежність від завдань, інтерпретація результатів, виконання команд на віддаленому сервері тощо). В основному нічого, що ви не могли б зробити зі сценаріями оболонок, але в python це набагато менш загадковим.

14

Я хотів би зазначити PyBuilder, який сильно надихається Maven, але використовує python замість XML для конфігурації, так що насправді читається, IMHO.

Існує плагін для управління залежностями (використовує pip під кришкою та розрізняє залежності побудови та часу виконання), і, на відміну від maven, ви можете пропустити повний життєвий цикл збірки за допомогою однієї команди.


9

Для розгортання, крім distutils / setuptoos, також погляньте на пакет pip (використовує setuptools під ним). Він може відкатати невдалі установки, а також видалити (чогось не вистачає у easy_install / setuptools). Крім того, ви можете вказати залежності через текстовий файл вимог.


6

Добре використовувати virtualenv для створення окремого середовища проекту та використовувати pip / easy_install для залежностей від управління.


7
Це сумно
:)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.