Ми вже неодноразово наголошували, що Python — одна з найперспективніших і порівняно простих у вивченні мов програмування. Що ще важливіше — у нього величезне ком'юніті, яке безперервно створює справді корисні бібліотеки та фреймворки. А ті, у свою чергу, істотно розширюють можливості застосування Python у професійній діяльності. І саме про найбільш корисні бібліотеки йтиметься сьогодні!
Якщо ви тільки вивчаєте Python або вже працюєте з цією мовою, наступна інформація буде для вас корисною. Також рекомендуємо зберегти її в закладки тим, хто проходить чи планує пройти курс Wezom Академії "Основи Python з нуля до функціонального проекту".
Для зручності ми розподілили бібліотеки Python на кілька основних категорій. Знаходьте та використовуйте те, що потрібно саме вам!
Для роботи з додатками
Python дуже активно застосовується при написанні web-додатків та десктопного ПЗ. А бібліотек, які спрощують подібні завдання, безліч:
- Requests — бібліотека для зручнішого та швидкого написання HTTP-запитів та їх підключення до сторонніх сервісів. Немає необхідності вручну додавати рядки запиту до URL-адреси. Серед корисних функцій та можливостей: сеанси із збереженням cookie-файлів, перевірка SSL-сертифікатів, автоматичне декодування контенту та декомпресія, тайм-аути підключення тощо.
- HTTPX — додаток до попередньої бібліотеки, за допомогою якого можна зручніше працювати з HTTP та асинхронністю. По суті, це повнофункціональний HTTP-клієнт для Python, що підтримує як HTTP/1.1, так і HTTP/2.
- Retrying — бібліотека для автоматизації повторних дзвінків. Дуже корисно, коли певний запит не виконано та повертає помилку. Retrying автоматично надсилає повторні запити без необхідності щоразу виконувати операцію вручну. Частоту та кількість повторних запитів можна настроїти індивідуально.
- Celery — вкрай зручний інструмент для розподілу завдань у великих проектах за пріоритетами. Звичайно, якщо ви працюєте над невеликим проектом із маленькою командою, у цьому немає особливої потреби. Але в деяких випадках Celery є просто незамінним.
- Dramatiq — новіший аналог Celery, але заточений швидше під розподіл «фонових» завдань. Бібліотека поєднує простоту, надійність та зручність. Підтримує Python 3.7 та пізніші версії. Багато розробників відзначають, що Dramatiq дійсно зручніше і надійніше за Celery.
- Flask — мікрофреймворк, за допомогою якого можна створювати найпростіші web-додатки. Відмінний варіант, якщо вам потрібно швидко підготувати нескладний проект, який надалі масштабуватиметься. Серед важливих переваг Flask – зручна інтеграція зі сторонніми інструментами.
Для машинного навчання та ІІ
Python залишається однією з головних мов програмування у напрямках машинного навчання, AI та аналізу даних. Використовуючи відповідні бібліотеки, можна суттєво спростити собі роботу, прискорити та автоматизувати багато процесів:
- NumPy — потужний інструмент для виконання числових обчислень практично будь-якої складності за допомогою Python. Він незамінний при роботі з матрицями та багаторівневими масивами. NumPy має відкритий вихідний код і поширюється безкоштовно.
- SciPy — ідейне продовження NumPy, але з ще більшим функціоналом. За допомогою SciPy можна проводити глибокі та складні математичні операції, а також виконувати комплексний науковий аналіз. Інструмент хоч і далеко не простий у освоєнні, але в деяких випадках просто незамінний.
- Matplotlib — велика бібліотека Python для створення статичних, динамічних та інтерактивних графіків. Графіки можна масштабувати, панорамувати і оновлювати, налаштовувати візуальні стилі та макети, експортувати у файли різних форматів, вбудовувати в графічні інтерфейси і багато іншого.
- Pillow — інструмент для роботи з зображеннями, їх обробки, застосування різних ефектів, видалення шумів і так далі. Зверніть увагу, що Pillow — платна бібліотека, доступ до якої коштуватиме $30 000 на рік (для команд зі штатом до 50 розробників). Але можна скористатися безплатною демо-версією.
- TensorFlow — бібліотека для створення моделей машинного навчання. Дозволяє використовувати заздалегідь навчені моделі або створювати власні, містить рішення машинного навчання для всіх рівнів кваліфікації, а також інструменти для оптимізації ряду робочих завдань.
- Keras — допоміжний інструмент для TensorFlow, за допомогою якого можна створювати та налаштовувати моделі та нейромережі.
- PyTorch — хороша альтернатива TensorFlow від розробників Facebook. Багато Python-розробників сходяться на думці, що PyTorch зручніше та ефективніше. Плюс бібліотека новіша, що для багатьох теж важливо.
- OpenCV — бібліотека Python для взаємодії з алгоритмами комп'ютерного зору, обробкою графіки та Machine Learning. Вона, до того ж, повністю кросплатформова, працює з інтерфейсами C++, Python та Java, підтримується в Linux, MacOS, Windows, iOS та Android.
Для логування, обробки та форматування даних
Робота Python-програміста - це не тільки написання коду, а й взаємодія з великими обсягами даних. За допомогою наступних бібліотек можна ефективніше обробляти «сирі» дані, очищати від усього зайвого та отримувати тільки найголовніше, щоб надалі вносити до різних систем та використовувати в роботі:
- Rich — досить проста бібліотека Python для запису форматованого тексту (з кольором і стилем) в термінал. Також з її допомогою можна відображати в терміналі розширений вміст - таблиці, код із виділеним синтаксисом, емодзи, інше.
- Loguru — незамінний інструмент, який робить логування інформації в бібліотеці Python набагато зручнішим і простішим. Доступно безліч налаштувань форматування, архівування файлів тощо.
- Pydantic — бібліотека Python, за допомогою якої можна отримувати інформацію з інших сервісів та приводити її до єдиного виду для більш зручного використання.
- Dateparser — бібліотека модулів для аналізу локалізованих дат, які можна зустріти на веб-сторінках. Підтримується більше ніж 200 мовних стандартів відображення дати. Досить корисний інструмент під час виконання парсингу даних.
Для відстеження та аналізу
Розробник повинен мати можливість постійно відстежувати працездатність і поведінку програми, щоб своєчасно виявляти і усувати будь-які неполадки. Для цього можна використовувати такі бібліотеки:
- Py-spy — профілювальник вибірки для програм Python. Незамінний інструмент для оцінки працездатності програми, її ресурсоємності та часу, що вона витрачає на ті чи інші завдання. Дуже корисно при пошуку багів, особливо в ситуаціях, коли не можна змінювати вихідний код.
- Pympler — ще один корисний інструмент для моніторингу програм, призначений насамперед для аналізу пам'яті, що споживається. З його допомогою можна виявити витоку пам'яті, а також виявити процеси, які до неї призводять.
Для тестування
Тестування – невід'ємна частина процесу розробки. Взагалі це окремий IT-напрямок, але за допомогою деяких бібліотек Python-розробник може проводити базове тестування самостійно та з високою точністю:
- Responses — інструмент для генерації різних відповідей на запити і подальшого їх аналізу. Responses корисний для тестування і багато в чому є протилежністю Requests із самого початку нашого списку. З його допомогою можна тестувати, як саме програма реагує на відповіді стороннього сервісу.
- Freezegun — бібліотека, що дозволяє тестам Python «мандрувати у часі», імітуючи модуль datetime. Таким чином, можна легко тестувати роботу програми в певний період часу. Корисно, якщо ваша програма, наприклад, має працювати інакше у різний час доби.
- Faker — пакет Python, який генерує для вас підроблені дані. Наприклад, імена користувачів, номери телефонів, адреси електронної пошти та інше. Faker корисний при розробці програм, що вимагають роботи заповнення полів даних. Щоб не використовувати реальну інформацію та не вигадувати фейкові дані самостійно, застосовуйте Faker.
- Factory_boy — у певному сенсі аналог Faker, з тією лише різницею, що він генерує фікстури. Фікстури – це блоки коду, які виконуються до або після тестових функцій. Factory_boy має простий декларативний синтаксис, підтримує успадкування та добре працює з різними ORM: Django, MongoDB, SQLAlchemy.
Насамкінець хочемо додати, що бібліотеки Python — це незамінні інструменти, здатні зробити роботу розробника в рази простіше, зручніше та ефективніше. Головне — не заплутатися в різноманітності доступних бібліотек і використовувати саме ті, що вирішують ваші завдання, а не ускладнюють їх. Тому що таке теж можливе!