Этот гайд поможет настроить все необходимые инструменты для курса.
- Установка базовых инструментов
- Python окружение
- Docker
- PostgreSQL
- Git и GitHub
- Редактор кода
- Опционально: Node.js для фронтенда
- Проверка установки
# Установка Homebrew (если еще не установлен)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Установка основных инструментов
brew install python@3.14
brew install node
brew install git
brew install --cask docker# Обновление системы
sudo apt update && sudo apt upgrade -y
# Python 3.14
# В Ubuntu/Debian нужная версия часто отсутствует в стандартных репозиториях.
# Рекомендуемый способ — pyenv (сборка из исходников).
sudo apt install -y \
build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
curl libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
curl -fsSL https://pyenv.run | bash
# Добавьте в ~/.bashrc (или ~/.zshrc) и перезапустите shell:
# export PYENV_ROOT="$HOME/.pyenv"
# [[ -d "$PYENV_ROOT/bin" ]] && export PATH="$PYENV_ROOT/bin:$PATH"
# eval "$(pyenv init -)"
# Установка Python 3.14.x и выбор версии в репозитории
pyenv install 3.14.2
cd product_dev_course
pyenv local 3.14.2
# Node.js (LTS)
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install nodejs -y
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# Git
sudo apt install git -y- Python: Скачать с python.org (3.14+)
- Обязательно отметить "Add Python to PATH"
- Node.js: Скачать с nodejs.org (LTS версия)
- Docker Desktop: Скачать с docker.com
- Git: Скачать с git-scm.com
# Переход в директорию проекта
cd product_dev_course/course-materials/semester-1/module-1-web-api/week-01
# Создание venv
python3.14 -m venv venv
# Активация (macOS/Linux)
source venv/bin/activate
# Активация (Windows)
venv\Scripts\activate
# Проверка версии
python --version
# Должно быть: Python 3.14.x# Обновление pip
pip install --upgrade pip
# Установка основных библиотек
pip install aiohttp aiohttp-cors aiohttp-swagger3
pip install sqlalchemy alembic asyncpg
pip install pydantic python-jose[cryptography] passlib[bcrypt]
pip install pytest pytest-asyncio aiohttp-pytest testsuite
pip install ruff black mypy
pip install redis aioredis celery
pip install structlog prometheus-client
# Сохранение зависимостей
pip freeze > requirements.txt# Версия Docker
docker --version
# Должно быть: Docker version 24.x или выше
# Версия Docker Compose
docker compose version
# Должно быть: Docker Compose version v2.x
# Проверка работы
docker run hello-worldFROM python:3.14-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "main.py"]version: '3.8'
services:
app:
build: .
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://user:password@db:5432/mydb
depends_on:
- db
db:
image: postgres:15-alpine
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
postgres_data:macOS:
brew install postgresql@15
brew services start postgresql@15Linux:
sudo apt install postgresql postgresql-contrib -y
sudo systemctl start postgresql
sudo systemctl enable postgresqlРекомендация: Использовать Docker для PostgreSQL:
docker run --name postgres-dev \
-e POSTGRES_USER=dev \
-e POSTGRES_PASSWORD=devpassword \
-e POSTGRES_DB=coursedb \
-p 5432:5432 \
-d postgres:15-alpine# Через psql
psql -h localhost -U dev -d coursedb
# Через pgAdmin (GUI)
# Скачать: https://www.pgadmin.org/download/# Настройка имени и email
git config --global user.name "Ваше Имя"
git config --global user.email "your.email@example.com"
# Настройка редактора по умолчанию
git config --global core.editor "code --wait" # для VS Code
# Проверка настроек
git config --list# Генерация SSH ключа
ssh-keygen -t ed25519 -C "your.email@example.com"
# Добавление ключа в ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Копирование публичного ключа
cat ~/.ssh/id_ed25519.pub
# Скопировать вывод и добавить на GitHub:
# GitHub → Settings → SSH and GPG keys → New SSH keygit clone git@github.com:your-org/product_dev_course.git
cd product_dev_courseУстановка:
- Скачать с code.visualstudio.com
Необходимые расширения:
# Установка через командную строку
code --install-extension ms-python.python
code --install-extension ms-python.vscode-pylance
code --install-extension charliermarsh.ruff
code --install-extension ms-vscode.vscode-typescript-next
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
code --install-extension ms-azuretools.vscode-docker
code --install-extension eamodio.gitlensИли установить вручную:
- Python
- Pylance
- Ruff
- TypeScript
- ESLint
- Prettier
- Docker
- GitLens
Настройки VS Code (settings.json):
{
"python.linting.enabled": true,
"python.linting.ruffEnabled": true,
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
}
}- Professional версия имеет отличную поддержку aiohttp, Docker, БД
- Community версия подходит для Python разработки
Если планируете разрабатывать фронтенд часть (необязательно для курса):
# macOS
brew install node
# Linux
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install nodejs -y
# Windows
# Скачать с nodejs.orgЕсли хотите легко переключаться между версиями Node (например, под разные проекты), используйте nvm.
# Установка nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# Подключение nvm в текущей сессии (без перезапуска терминала)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
# Установка и выбор последней LTS-версии Node
nvm install --lts
nvm use --lts
node -v# Создание React приложения с TypeScript
npx create-react-app my-frontend --template typescript
# Или Vite для более быстрой разработки
npm create vite@latest my-frontend -- --template react-tsПримечание: Фронтенд часть не является обязательной для курса, но может быть полезна для понимания полной картины взаимодействия клиент-сервер.
Создайте файл check_setup.py:
#!/usr/bin/env python3
import sys
import subprocess
import importlib.util
def check_command(command, version_flag="--version"):
try:
result = subprocess.run(
[command, version_flag],
capture_output=True,
text=True,
timeout=5
)
return True, result.stdout.split('\n')[0]
except Exception as e:
return False, str(e)
def check_python_package(package):
return importlib.util.find_spec(package) is not None
print("🔍 Проверка окружения для курса...\n")
# Проверка базовых команд
commands = [
("python3", "--version"),
("pip", "--version"),
("docker", "--version"),
("docker", "compose version"),
("git", "--version"),
]
for cmd in commands:
name = cmd[0] if len(cmd) == 2 else f"{cmd[0]} {cmd[1]}"
success, output = check_command(*cmd)
status = "✅" if success else "❌"
print(f"{status} {name}: {output if success else 'НЕ УСТАНОВЛЕНО'}")
# Проверка Python пакетов
print("\n📦 Проверка Python пакетов:")
packages = ["aiohttp", "sqlalchemy", "pytest", "testsuite", "pydantic"]
for pkg in packages:
installed = check_python_package(pkg)
status = "✅" if installed else "❌"
print(f"{status} {pkg}: {'установлен' if installed else 'НЕ УСТАНОВЛЕН'}")
print("\n✨ Проверка завершена!")Запустите:
python3 check_setup.pyСоздайте простое aiohttp приложение для проверки:
# test_app.py
from aiohttp import web
async def read_root(request):
return web.json_response({"message": "Setup successful!"})
async def health_check(request):
return web.json_response({"status": "healthy"})
def create_app():
app = web.Application()
app.router.add_get('/', read_root)
app.router.add_get('/health', health_check)
return app
if __name__ == '__main__':
app = create_app()
web.run_app(app, host='0.0.0.0', port=8000)Запустите:
python test_app.pyОткройте в браузере:
- http://localhost:8000 - должно показать JSON с сообщением
- http://localhost:8000/health - проверка здоровья приложения
macOS/Linux:
# Добавьте в ~/.bashrc или ~/.zshrc
export PATH="/usr/local/opt/python@3.14/bin:$PATH"Windows:
- Переустановите Python с галочкой "Add to PATH"
- Или добавьте вручную в системные переменные
# Linux: добавьте пользователя в группу docker
sudo usermod -aG docker $USER
# Перелогиньтесь для применения изменений# Найти процесс на порту 8000
lsof -i :8000 # macOS/Linux
netstat -ano | findstr :8000 # Windows
# Завершить процесс или использовать другой порт
python main.py # измените порт в коде# Остановить и удалить контейнер
docker stop postgres-dev
docker rm postgres-dev
# Очистить volume
docker volume rm postgres_data
# Запустить заново
docker run --name postgres-dev ...# Убедитесь что установлены все зависимости
pip install aiohttp aiohttp-cors
# Проверьте версию Python (должна быть 3.14+)
python --versionПосле настройки окружения:
- Прочитайте Code Style Guide
- Ознакомьтесь с PR Guidelines
- Перейдите к Неделе 1
- aiohttp Documentation
- Docker Getting Started
- PostgreSQL Tutorial
- SQLAlchemy Tutorial
- pytest Documentation
- testsuite Documentation
Если у вас возникли проблемы, создайте Issue в репозитории курса с тегом setup-help.