Обзор 30 ключевых библиотек Python
1. Веб-разработка и API
Django - полнофункциональный веб-фреймворк
Возможности: ORM, панель администратора, аутентификация, шаблонизация
Применение: Корпоративные приложения, CMS, социальные сети
# views.py
from django.http import HttpResponse
from django.shortcuts import render
def hello_view(request):
return HttpResponse("Привет, Django!")
Flask - микрофреймворк для веб-приложений
Возможности: Маршрутизация, шаблоны Jinja2, расширяемая архитектура
Применение: REST API, микросервисы, простые веб-приложения
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello Flask!'
if __name__ == '__main__':
app.run(debug=True)
FastAPI - современный фреймворк для API
Возможности: Автоматическая документация, валидация данных, асинхронность
Применение: Высоконагруженные API, микросервисы
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
def create_item(item: Item):
return {"item": item}
2. Работа с данными и анализ
Pandas - анализ и обработка данных
Возможности: DataFrame, чтение/запись CSV/Excel, группировка, фильтрация
Применение: Data Science, аналитика, ETL-процессы
import pandas as pd
# Чтение и анализ данных
df = pd.read_csv('data.csv')
print(df.head())
print(df.describe())
df_filtered = df[df['age'] > 25]
NumPy - научные вычисления
Возможности: Многомерные массивы, математические функции, линейная алгебра
Применение: Машинное обучение, научные расчеты, обработка сигналов
import numpy as np # Операции с массивами arr = np.array([[1, 2], [3, 4]]) print(arr * 2) print(np.mean(arr))
SQLAlchemy - ORM для работы с базами данных
Возможности: Поддержка SQL, миграции, отношения между моделями
Применение: Веб-приложения, работа с различными СУБД
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
# Создание сессии
engine = create_engine('sqlite:///db.sqlite3')
Session = sessionmaker(bind=engine)
session = Session()
3. Машинное обучение и ИИ
Scikit-learn - классическое машинное обучение
Возможности: Классификация, регрессия, кластеризация, предобработка
Применение: Прогнозирование, рекомендательные системы, анализ данных
from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Обучение модели X_train, X_test, y_train, y_test = train_test_split(X, y) model = RandomForestClassifier() model.fit(X_train, y_train) predictions = model.predict(X_test)
TensorFlow/Keras - глубокое обучение
Возможности: Нейронные сети, компьютерное зрение, NLP
Применение: Распознавание образов, генерация текста, автономные системы
import tensorflow as tf
from tensorflow import keras
# Простая нейронная сеть
model = keras.Sequential([
keras.layers.Dense(128, activation='relu'),
keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy')
PyTorch - фреймворк глубокого обучения
Возможности: Динамические графы вычислений, GPU-ускорение
Применение: Исследования в области ИИ, компьютерное зрение
import torch
import torch.nn as nn
# Определение модели
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(10, 5)
def forward(self, x):
return self.fc(x)
OpenAI API - работа с GPT-моделями
Возможности: Генерация текста, чат-боты, анализ контента
Применение: Чат-приложения, автоматизация контента, аналитика
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Привет!"}]
)
print(response.choices[0].message.content)
4. Визуализация данных
Matplotlib - построение графиков
Возможности: Линейные, столбчатые, круговые диаграммы, гистограммы
Применение: Научная визуализация, отчеты, дашборды
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 1])
plt.title('Мой график')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
Seaborn - статистическая визуализация
Возможности: Heatmaps, pair plots, распределения
Применение: Анализ данных, исследовательский анализ
import seaborn as sns
import pandas as pd
df = pd.read_csv('data.csv')
sns.pairplot(df, hue='category')
Plotly - интерактивная визуализация
Возможности: 3D-графики, интерактивность, веб-приложения
Применение: Дашборды, веб-аналитика
import plotly.express as px fig = px.scatter(df, x='age', y='salary', color='department') fig.show()
5. Асинхронное программирование
Asyncio - асинхронный фреймворк
Возможности: Асинхронные функции, задачи, очереди
Применение: Высоконагруженные приложения, сетевые программы
import asyncio
async def fetch_data():
await asyncio.sleep(1)
return "Данные"
async def main():
result = await fetch_data()
print(result)
asyncio.run(main())
Celery - распределенная очередь задач
Возможности: Фоновые задачи, периодические задания, масштабирование
Применение: Обработка фоновых задач, отправка email, обработка файлов
from celery import Celery
app = Celery('tasks', broker='redis://localhost')
@app.task
def process_data(data):
# Длительная обработка
return processed_data
6. Тестирование
Pytest - фреймворк для тестирования
Возможности: Фикстуры, параметризация, плагины
Применение: Модульное и интеграционное тестирование
# test_example.py
def test_addition():
assert 1 + 1 == 2
def test_list():
assert [1, 2, 3] == [1, 2, 3]
Unittest - встроенный фреймворк тестирования
Возможности: Классы тестов, setUp/tearDown, mock-объекты
Применение: Стандартное тестирование приложений
import unittest
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
7. Веб-скрапинг и парсинг
BeautifulSoup - парсинг HTML/XML
Возможности: Навигация по DOM, поиск элементов, извлечение данных
Применение: Веб-скрапинг, сбор данных
from bs4 import BeautifulSoup
import requests
html = requests.get('http://example.com').text
soup = BeautifulSoup(html, 'html.parser')
titles = soup.find_all('h1')
Scrapy - фреймворк для веб-скрапинга
Возможности: Пауки, конвейеры, экспорт данных
Применение: Промышленный скрапинг, сбор больших объемов данных
import scrapy
class BlogSpider(scrapy.Spider):
name = 'blogspider'
def start_requests(self):
urls = ['http://blog.com']
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
for title in response.css('h2'):
yield {'title': title.css('::text').get()}
8. Работа с файлами и форматами
Pillow - обработка изображений
Возможности: Изменение размера, фильтры, форматы изображений
Применение: Веб-приложения, обработка фото, компьютерное зрение
from PIL import Image
img = Image.open('photo.jpg')
img.thumbnail((100, 100))
img.save('thumb.jpg')
Openpyxl - работа с Excel
Возможности: Чтение/запись XLSX, форматирование, формулы
Применение: Офисная автоматизация, отчеты
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws['A1'] = 'Привет'
wb.save('report.xlsx')
PyPDF2 - работа с PDF
Возможности: Объединение, разделение, извлечение текста
Применение: Обработка документов, автоматизация
from PyPDF2 import PdfReader
reader = PdfReader("document.pdf")
text = reader.pages[0].extract_text()
9. Сетевые приложения и API
Requests - HTTP-запросы
Возможности: GET/POST запросы, сессии, cookies
Применение: Работа с внешними API, веб-скрапинг
import requests
response = requests.get('https://api.github.com')
data = response.json()
Websockets - двусторонняя связь в реальном времени
Возможности: WebSocket сервер/клиент, асинхронная работа
Применение: Чат-приложения, онлайн-игры, реальное время
import websockets
import asyncio
async def handler(websocket):
async for message in websocket:
await websocket.send(f"Получено: {message}")
10. Автоматизация и DevOps
Fabric - автоматизация развертывания
Возможности: Удаленное выполнение команд, деплоймент
Применение: Автоматизация серверов, CI/CD
from fabric import Connection
def deploy():
c = Connection('server.com')
c.run('git pull origin main')
c.sudo('systemctl restart myapp')
Docker SDK - работа с Docker
Возможности: Управление контейнерами, образами, сетями
Применение: Автоматизация Docker, CI/CD пайплайны
import docker
client = docker.from_env()
client.containers.run('ubuntu', 'echo hello world')
11. GUI-приложения
Tkinter - встроенный GUI-фреймворк
Возможности: Окна, виджеты, события
Применение: Десктопные приложения, утилиты
import tkinter as tk window = tk.Tk() label = tk.Label(window, text="Привет!") label.pack() window.mainloop()
PyQt/PySide - продвинутые GUI
Возможности: Современный интерфейс, Qt Designer
Применение: Кроссплатформенные приложения, профессиональный софт
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello PyQt')
label.show()
app.exec_()
12. Специализированные библиотеки
aiogram - Telegram боты
Возможности: FSM, middleware, inline-клавиатуры
Применение: Telegram боты, автоматизация
from aiogram import Bot, Dispatcher, types
bot = Bot(token="TOKEN")
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start_cmd(message: types.Message):
await message.answer("Привет!")
Django REST Framework - API для Django
Возможности: Сериализаторы, viewsets, аутентификация
Применение: REST API на Django
from rest_framework import serializers, viewsets
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username']
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
Streamlit - дашборды и ML-приложения
Возможности: Интерактивные виджеты, автоматическое обновление
Применение: Прототипирование ML, дашборды
import streamlit as st
import pandas as pd
st.title('Мое приложение')
data = pd.read_csv('data.csv')
st.dataframe(data)
Poetry - управление зависимостями
Возможности: Виртуальные окружения, управление пакетами
Применение: Профессиональная разработка, деплоймент
# Использование poetry new project poetry add requests poetry install
Logging - встроенное логирование
Возможности: Уровни логирования, обработчики, форматирование
Применение: Отладка, мониторинг приложений
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
logger.info('Приложение запущено')
Pydantic - валидация данных
Возможности: Валидация, сериализация, настройки
Применение: Валидация API, конфигурация
from pydantic import BaseModel, validator
class User(BaseModel):
name: str
age: int
@validator('age')
def check_age(cls, v):
if v < 0:
raise ValueError('Возраст не может быть отрицательным')
return v
Этот обзор охватывает ключевые библиотеки для основных направлений разработки на Python. Каждая из них решает конкретные задачи и является стандартом в своей области применения.