Як упакувати програму python, щоб зробити її піп-інсталяційною?


95

Я пишу заявку на django у вільний час для змагання з непомітними підказками, яке ми проводимо на роботі. Я вирішив, що використаю цей час з розумом і прискорюю роботу virtualenv, pip, упаковки, django 1.3 та того, як написати легко розповсюджувану програму. Все йде нормально.

Я до деталі упаковки. Наприклад, багато програм-джанго на GitHub в основному входять до складу (приблизно) однаково. Я буду використовувати django-uni-forms як приклад.

Я припускаю, що MANIFEST.inіsetup.py є єдиними необхідними фігурами, які піп повинен виконувати свою роботу. Це правильно? Які інші компоненти необхідні, якщо моє припущення хибне?

Чи створюються загалом необхідні файли упаковки чи вони виготовляються вручну? Чи можна описати залежності, а потім їх також встановити? Моя заявка залежить від django-uni-forms, і я її перелічую вrequirements.txt файлі моєї програми, який я використовував для встановлення залежності; але чи це те, про що може подбати система упаковки?

Які кроки мені потрібно виконати, щоб упакувати свою програму таким чином, що pip зможе її встановити та будь-які залежності?

Відповіді:


88

Так, MANIFEST.inіsetup.py повинно бути достатньо.

У цій публікації в блозі справді є якась корисна інформація на цю тему: Упаковка багаторазового додатка Django

І ось ще один хороший, детальний огляд, який мені дуже допоміг: Посібник користувача з упаковки Python

Особливо поради щодо включення ваших статичних файлів (шаблонів) важливі, оскільки це спочатку може бути не очевидним.

Так, ви можете вказати необхідні пакунки у своєму, setup.pyякі автоматично отримуватимуться під час встановлення програми.

Наприклад:

    install_requires = [
        'django-profiles',
        'django-uni-forms',
    ],

Очевидно, що зараз у нас є два місця, де визначаються залежності, але це не обов'язково означає, що ця інформація дублюється: setup.py vs requirements.txt

За допомогою цього налаштування ваш пакет повинен бути встановлений через pip.


Як зазначив П'єр у коментарях, тепер в офіційній документації Django також є відповідний розділ: Упаковка вашого додатка

А ще є цей "повністю неповний" посібник, який насправді дає чудовий огляд упаковки та завантаження пакету до PyPI: Поділитися своєю працею любові: PyPI Quick And Dirty


4
Також зараз є частина, що пояснює, як упакувати програму Django в офіційних документах
П’єр де ЛЕСПІНЕЙ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.