Title: 🐍 Python — venv/pip/pipx/poetry Group: Dev & Tools Icon: 🐍 Order: 3
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
- pip — Package Manager
- pipx — CLI Tool Installer
- poetry — Dependency Management
- pyenv — Python Version Manager
- Virtual Environment Tools Comparison
- Troubleshooting
- Real-World Examples
- Best Practices
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 / Деактивировать venvpython3 -m venv --system-site-packages .venv # Include system packages / Включить системные пакеты
python3 -m venv --clear .venv # Recreate venv / Пересоздать venvpip 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 / Установить в редактируемом режиме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 зависимости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 / Показать устаревшие пакетыpip uninstall requests # Uninstall package / Удалить пакет
pip uninstall -r requirements.txt -y # Uninstall from file / Удалить из файла
pip cache purge # Clear cache / Очистить кэшpip list # List installed packages / Список установленных пакетов
pip show requests # Show package info / Показать информацию о пакете
pip check # Verify dependencies / Проверить зависимостиpipx install black # Install CLI tool / Установить CLI инструмент
pipx install flake8 # Install linter / Установить линтер
pipx install poetry # Install poetry / Установить poetry
pipx install ansible # Install ansible / Установить ansiblepipx list # List installed tools / Список установленных инструментов
pipx upgrade black # Upgrade tool / Обновить инструмент
pipx upgrade-all # Upgrade all tools / Обновить все инструменты
pipx uninstall black # Uninstall tool / Удалить инструментpipx run black script.py # Run without installing / Запустить без установки
pipx run --spec black==22.0.0 black # Run specific version / Запустить конкретную версиюpoetry new myproject # Create new project / Создать новый проект
poetry init # Initialize in existing dir / Инициализировать в существующей директории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 / Добавить с ограничением версииpoetry update # Update dependencies / Обновить зависимости
poetry update requests # Update specific package / Обновить конкретный пакет
poetry remove requests # Remove package / Удалить пакет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 / Показать информацию о venvpoetry build # Build package / Собрать пакет
poetry publish # Publish to PyPI / Опубликовать в PyPI
poetry publish --build # Build and publish / Собрать и опубликовать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 / Список доступных версийpyenv global 3.11.0 # Set global version / Установить глобальную версию
pyenv local 3.10.0 # Set local version / Установить локальную версию
pyenv shell 3.11.0 # Set shell version / Установить версию для shellpyenv versions # List installed versions / Список установленных версий
pyenv version # Show current version / Показать текущую версию
pyenv uninstall 3.9.0 # Uninstall version / Удалить версию| 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 |
| 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 |
| 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 |
| 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 / Приватные репозитории |
# Clean install / Чистая установка
rm -rf .venv
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txtpip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <PACKAGE>pip install --user <PACKAGE> # Install for user / Установить для пользователяpip install pip-tools # Install pip-tools / Установить pip-tools
pip-compile requirements.in # Compile dependencies / Скомпилировать зависимости
pip-sync requirements.txt # Sync 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. Всегда используйте виртуальные окружения.
# 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# Initialize / Инициализировать
poetry new myproject
cd myproject
# Add dependencies / Добавить зависимости
poetry add fastapi uvicorn
poetry add -D pytest black
# Run / Запустить
poetry run python main.py# Install Jupyter / Установить Jupyter
pip install jupyter notebook
# Create kernel / Создать kernel
python -m ipykernel install --user --name=myproject
# Start notebook / Запустить notebook
jupyter notebookpython3 -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 runpython3 -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 runserverpython3 -m venv .venv
source .venv/bin/activate
pip install numpy pandas matplotlib jupyter scikit-learn
# Save requirements / Сохранить requirements
pip freeze > requirements.txt# Install in editable mode / Установить в редактируемом режиме
pip install -e .
# Run CLI / Запустить CLI
mycli --helpFROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]- Always use virtual environments / Всегда используйте виртуальные окружения
- Pin dependencies in
requirements.txt/ Фиксируйте зависимости вrequirements.txt - Separate dev dependencies / Разделяйте dev зависимости
- Use
pipxfor CLI tools / Используйтеpipxдля CLI инструментов - Update pip before installing packages / Обновляйте pip перед установкой пакетов
- Use
poetryfor modern dependency management / Используйтеpoetryдля современного управления зависимостями
- Python venv: https://docs.python.org/3/library/venv.html
- pip: https://pip.pypa.io/en/stable/
- pipx: https://pipx.pypa.io/stable/
- poetry: https://python-poetry.org/docs/
- pyenv: https://github.com/pyenv/pyenv
- uv (alternative): https://github.com/astral-sh/uv
- pip-tools: https://pip-tools.readthedocs.io/