Python — venv/pip/pipx/poetry

If you like this project, consider supporting me on Buy Me a Coffee ☕️

Python Tools Cheatsheet — venv / pip / pipx / poetry / pyenv

Description: A collection of Python ecosystem tools for virtual environment management, package management, and version management. venv is the built-in virtual environment module (Python 3.3+). pip is the standard package installer. pipx installs CLI tools in isolated environments. poetry is a modern all-in-one dependency manager. pyenv manages multiple Python versions. Коллекция инструментов экосистемы Python для управления виртуальными окружениями, пакетами и версиями. venv — встроенный модуль виртуальных окружений. pip — стандартный установщик пакетов. pipx — изолированная установка CLI. poetry — современный менеджер зависимостей. pyenv — управление версиями Python.

Status: All actively maintained. uv (by Astral, Rust-based) is an emerging ultra-fast alternative to pip/pip-tools/virtualenv/pyenv. pdm is another modern alternative to poetry. Role: Developer / DevOps / Data Scientist


🌍 venv — Virtual Environments

Create & Activate / Создание и активация

python3 -m venv .venv                         # Create venv / Создать venv
source .venv/bin/activate                     # Activate (Linux/Mac) / Активировать (Linux/Mac)
.venv\Scripts\activate                        # Activate (Windows) / Активировать (Windows)
deactivate                                    # Deactivate venv / Деактивировать venv

With System Packages / С системными пакетами

python3 -m venv --system-site-packages .venv  # Include system packages / Включить системные пакеты
python3 -m venv --clear .venv                 # Recreate venv / Пересоздать venv

📦 pip — Package Manager

Install Packages / Установка пакетов

pip install requests                          # Install package / Установить пакет
pip install requests==2.28.0                  # Install specific version / Установить конкретную версию
pip install requests>=2.28.0                  # Install minimum version / Установить минимальную версию
pip install -e .                              # Install in editable mode / Установить в редактируемом режиме

Requirements Files / Файлы требований

pip install -r requirements.txt               # Install from file / Установить из файла
pip freeze > requirements.txt                 # Generate requirements / Сгенерировать requirements
pip install -r requirements-dev.txt           # Install dev dependencies / Установить dev зависимости

Update & Upgrade / Обновление

pip install -U pip                            # Upgrade pip / Обновить pip
pip install -U pip setuptools wheel           # Update base tools / Обновить базовые инструменты
pip install -U requests                       # Upgrade package / Обновить пакет
pip list --outdated                           # Show outdated packages / Показать устаревшие пакеты

Remove & Clean / Удаление и очистка

pip uninstall requests                        # Uninstall package / Удалить пакет
pip uninstall -r requirements.txt -y          # Uninstall from file / Удалить из файла
pip cache purge                               # Clear cache / Очистить кэш

List & Show / Список и информация

pip list                                      # List installed packages / Список установленных пакетов
pip show requests                             # Show package info / Показать информацию о пакете
pip check                                     # Verify dependencies / Проверить зависимости

🎯 pipx — CLI Tool Installer

Install Tools / Установка инструментов

pipx install black                            # Install CLI tool / Установить CLI инструмент
pipx install flake8                           # Install linter / Установить линтер
pipx install poetry                           # Install poetry / Установить poetry
pipx install ansible                          # Install ansible / Установить ansible

Manage Tools / Управление инструментами

pipx list                                     # List installed tools / Список установленных инструментов
pipx upgrade black                            # Upgrade tool / Обновить инструмент
pipx upgrade-all                              # Upgrade all tools / Обновить все инструменты
pipx uninstall black                          # Uninstall tool / Удалить инструмент

Run Temporarily / Запустить временно

pipx run black script.py                      # Run without installing / Запустить без установки
pipx run --spec black==22.0.0 black           # Run specific version / Запустить конкретную версию

📚 poetry — Dependency Management

Initialize Project / Инициализировать проект

poetry new myproject                          # Create new project / Создать новый проект
poetry init                                   # Initialize in existing dir / Инициализировать в существующей директории

Install Dependencies / Установка зависимостей

poetry install                                # Install dependencies / Установить зависимости
poetry add requests                           # Add package / Добавить пакет
poetry add -D pytest                          # Add dev dependency / Добавить dev зависимость
poetry add requests@^2.28.0                   # Add with version constraint / Добавить с ограничением версии

Update & Remove / Обновление и удаление

poetry update                                 # Update dependencies / Обновить зависимости
poetry update requests                        # Update specific package / Обновить конкретный пакет
poetry remove requests                        # Remove package / Удалить пакет

Virtual Environment / Виртуальная среда

poetry shell                                  # Activate venv / Активировать venv
poetry run python script.py                   # Run in venv / Запустить в venv
poetry run pytest                             # Run tests / Запустить тесты
poetry env info                               # Show venv info / Показать информацию о venv

Build & Publish / Сборка и публикация

poetry build                                  # Build package / Собрать пакет
poetry publish                                # Publish to PyPI / Опубликовать в PyPI
poetry publish --build                        # Build and publish / Собрать и опубликовать

🔧 pyenv — Python Version Manager

Install Python Versions / Установка версий Python

pyenv install 3.11.0                          # Install specific version / Установить конкретную версию
pyenv install 3.11:latest                     # Install latest 3.11 / Установить последнюю 3.11
pyenv install --list                          # List available versions / Список доступных версий

Use Python Versions / Использование версий Python

pyenv global 3.11.0                           # Set global version / Установить глобальную версию
pyenv local 3.10.0                            # Set local version / Установить локальную версию
pyenv shell 3.11.0                            # Set shell version / Установить версию для shell

List & Manage / Список и управление

pyenv versions                                # List installed versions / Список установленных версий
pyenv version                                 # Show current version / Показать текущую версию
pyenv uninstall 3.9.0                         # Uninstall version / Удалить версию

pyenv Priority / Приоритет pyenv

Priority Method Description (EN / RU)
1 (highest) PYENV_VERSION env var Environment variable / Переменная окружения
2 pyenv shell Current shell session / Текущая сессия shell
3 pyenv local .python-version file in project / Файл .python-version в проекте
4 (lowest) pyenv global ~/.pyenv/version file / Файл ~/.pyenv/version

Virtual Environment Tools Comparison

Tool Type Description (EN / RU) Best For
venv Built-in (Python 3.3+) Standard library virtual environments / Виртуальные окружения из стандартной библиотеки Simple projects, no extra install
virtualenv Third-party More features than venv / Больше функций чем venv Legacy Python, advanced options
conda Full environment manager Manages Python + system packages / Управляет Python + системными пакетами Data science, non-Python dependencies
poetry All-in-one Dependency management + venv + packaging / Управление зависимостями + venv + сборка Modern Python projects
pipx CLI tool installer Isolated environments for CLI tools / Изолированные окружения для CLI инструментов Installing CLI tools globally
uv Ultra-fast (Rust-based) Replaces pip/pip-tools/virtualenv / Замена pip/pip-tools/virtualenv Speed-critical workflows, modern projects

Requirements Files / Файлы требований

File Purpose (EN / RU)
requirements.txt Production dependencies / Продакшн зависимости
requirements-dev.txt Development dependencies / Dev зависимости
requirements-test.txt Test dependencies / Тестовые зависимости
pyproject.toml Modern Poetry/PEP 621 format / Современный формат Poetry/PEP 621

Package Indexes / Индексы пакетов

Index URL Description (EN / RU)
PyPI https://pypi.org Official package index / Официальный индекс
TestPyPI https://test.pypi.org Testing & staging / Тестирование и подготовка
Private Configure in pip.conf Private repositories / Приватные репозитории

🐛 Troubleshooting / Устранение неполадок

Reinstall Packages / Переустановить пакеты

# Clean install / Чистая установка
rm -rf .venv
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt

Fix SSL Issues / Исправить SSL проблемы

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <PACKAGE>

Fix Permission Issues / Исправить проблемы с правами

pip install --user <PACKAGE>                  # Install for user / Установить для пользователя

Resolve Conflicts / Разрешить конфликты

pip install pip-tools                         # Install pip-tools / Установить pip-tools
pip-compile requirements.in                   # Compile dependencies / Скомпилировать зависимости
pip-sync requirements.txt                     # Sync environment / Синхронизировать окружение

Common Error: externally-managed-environment

# Error: "externally-managed-environment" (Python 3.11+ on Debian/Ubuntu)
# Solution: Always use venv or --break-system-packages
# Решение: Всегда используйте venv или --break-system-packages

python3 -m venv .venv && source .venv/bin/activate  # Recommended / Рекомендуется
pip install --break-system-packages <PACKAGE>       # Not recommended / Не рекомендуется

[!WARNING] --break-system-packages bypasses system protection and may break system Python. Always prefer virtual environments. --break-system-packages обходит защиту системы и может сломать системный Python. Всегда используйте виртуальные окружения.


🌟 Real-World Examples / Примеры из практики

New Python Project / Новый Python проект

# Create project / Создать проект
mkdir myproject && cd myproject
python3 -m venv .venv
source .venv/bin/activate

# Install tools / Установить инструменты
pip install -U pip setuptools wheel
pip install black flake8 pytest

# Create requirements / Создать requirements
pip freeze > requirements.txt

Poetry Project / Проект с Poetry

# Initialize / Инициализировать
poetry new myproject
cd myproject

# Add dependencies / Добавить зависимости
poetry add fastapi uvicorn
poetry add -D pytest black

# Run / Запустить
poetry run python main.py

Jupyter Notebook / Jupyter Notebook

# Install Jupyter / Установить Jupyter
pip install jupyter notebook

# Create kernel / Создать kernel
python -m ipykernel install --user --name=myproject

# Start notebook / Запустить notebook
jupyter notebook

Flask Development / Разработка Flask

python3 -m venv .venv
source .venv/bin/activate
pip install flask python-dotenv
pip install -D pytest pytest-flask

# Run dev server / Запустить dev сервер
export FLASK_APP=app.py
export FLASK_ENV=development
flask run

Django Setup / Настройка Django

python3 -m venv .venv
source .venv/bin/activate
pip install django psycopg2-binary python-dotenv

# Create project / Создать проект
django-admin startproject myproject .
python manage.py migrate
python manage.py runserver

Data Science Environment / Окружение для Data Science

python3 -m venv .venv
source .venv/bin/activate
pip install numpy pandas matplotlib jupyter scikit-learn

# Save requirements / Сохранить requirements
pip freeze > requirements.txt

CLI Tool Development / Разработка CLI инструментов

# Install in editable mode / Установить в редактируемом режиме
pip install -e .

# Run CLI / Запустить CLI
mycli --help

Docker Python Image / Docker образ Python

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]

💡 Best Practices / Лучшие практики


Official Documentation / Официальная документация

On this page

Python Tools Cheatsheet — venv / pip / pipx / poetry / pyenv 🌍 venv — Virtual Environments Create &amp; Activate / Создание и активация With System Packages / С системными пакетами 📦 pip — Package Manager Install Packages / Установка пакетов Requirements Files / Файлы требований Update &amp; Upgrade / Обновление Remove &amp; Clean / Удаление и очистка List &amp; Show / Список и информация 🎯 pipx — CLI Tool Installer Install Tools / Установка инструментов Manage Tools / Управление инструментами Run Temporarily / Запустить временно 📚 poetry — Dependency Management Initialize Project / Инициализировать проект Install Dependencies / Установка зависимостей Update &amp; Remove / Обновление и удаление Virtual Environment / Виртуальная среда Build &amp; Publish / Сборка и публикация 🔧 pyenv — Python Version Manager Install Python Versions / Установка версий Python Use Python Versions / Использование версий Python List &amp; Manage / Список и управление pyenv Priority / Приоритет pyenv Virtual Environment Tools Comparison Requirements Files / Файлы требований Package Indexes / Индексы пакетов 🐛 Troubleshooting / Устранение неполадок Reinstall Packages / Переустановить пакеты Fix SSL Issues / Исправить SSL проблемы Fix Permission Issues / Исправить проблемы с правами Resolve Conflicts / Разрешить конфликты Common Error: externally-managed-environment 🌟 Real-World Examples / Примеры из практики New Python Project / Новый Python проект Poetry Project / Проект с Poetry Jupyter Notebook / Jupyter Notebook Flask Development / Разработка Flask Django Setup / Настройка Django Data Science Environment / Окружение для Data Science CLI Tool Development / Разработка CLI инструментов Docker Python Image / Docker образ Python 💡 Best Practices / Лучшие практики Official Documentation / Официальная документация