Публікація модуля на PyPI
Отже, ви написали модуль, яким хочете поділитися з іншими, зробити свій вклад в розвиток Python-а, або просто хочете мати можливість встановлювати свій модуль чере pip. PyPI (Python Packages Index) - це офіційний репозиторій модулів для Python. Для початку необхідно зареєструватися там. Після цього потрібно підготувати модуль (для початку вважаємо, що у нас є модуль mymodule.py
, де міститься весь потрібний функціонал): за допомогою distutils створити скрипт встановлення. Створюємо файл setup.py
з подібним вмістом
1 | from distutils.core import setup |
Вказуємо назву, версію, інформацію про автора та короткий опис. Якщо у вас файл детального опису у форматі reStructuredText (такий часто використовують на Github, якщо потрібно звідкись взяти приклад) - в long_description записуємо текст з цього файлу або просто вводимо його вручну. Особливу увагу варто приділити classifiers: це дозволяє віднести ваш модуль до певної категорії, що допоможе знайти його іншим і вибрати серед аналогів. Список класифікаторів можна подивитися тут. Якщо є проблеми з вибором ліцензії, можна не вказувати її взагалі або скористатися помічником. В більшості випадків підійде MIT License. Коли файл готовий можна приступити до створення архіву для встановлення.
1 | $ python setup.py check |
Це створить в папці dist архів вашого модуля з усіма необхідними файлами.
Якщо все пройшло успішно - можна завантажити ваш модуль в репозиторій
1 | $ python setup.py sdist upload |
Потрібно буде ввести логін і пароль вашого зареєстрованого акаунта (вам запропонують зберегти ці параметри у файлі .pypirc
, щоб не вводити їх кожного разу) - і все: ваш модуль тепер доступний всім.
1 | $ pip install mymodule |
Отак просто! Після оновлення модуля - змінюємо версію і статус розробки (якщо потрібно) і вводимо команду
1 | $ python setup.py sdist upload |
Тепер, коли є декілька версій програми, можна встановлювати конкретну або оновлюватися до останної за допомогою команд
1 | $ pip install mymodule==1.2 |
В наступній статті я хочу більш детально описати скрипт setup.py
, ознайомити з форматом написання README-файлів та публікацією пакетів (більш складних модулів та додаткових файлів).
Вдалої розробки.