Установка пакетов в Python: pip, venv и первые ошибки
Разбираем, как поставить пакет в Python так, чтобы он не сломал систему и не конфликтовал с соседним проектом: виртуальное окружение, pip и типичные ошибки новичка.

К концу этой инструкции у вас будет отдельное виртуальное окружение для проекта, установленный в нём пакет requests и понимание, почему его нельзя ставить в систему напрямую. На всё уйдёт минут пятнадцать, включая исправление первой ошибки, которую вы почти наверняка увидите.
Инструкция написана для Python 3.11 и 3.12, менеджер пакетов — pip, он входит в стандартную поставку Python начиная с версии 3.4. Команды приведены и для Windows, и для macOS/Linux — разница только в способе активации окружения.
Что нужно иметь до начала
- Установленный Python 3.8 или новее. Проверьте: в терминале выполните
python --version(на macOS/Linux частоpython3 --version). Должна появиться строка видаPython 3.12.1. - Доступ к терминалу: PowerShell или cmd на Windows, любой терминал на macOS/Linux.
- Интернет — pip тянет пакеты из репозитория PyPI.
- Права на запись в папку проекта. Права администратора не нужны — и это главная мысль инструкции.
Если python --version выдаёт ошибку «команда не найдена», Python либо не установлен, либо не добавлен в PATH. На Windows переустановите его с python.org и на первом экране установщика поставьте галочку «Add python.exe to PATH».
Почему нельзя просто написать pip install
Соблазн большой: набрать pip install requests и работать. Проблема в том, что так пакет ставится в глобальный Python — один на всю систему. Через полгода у вас три проекта: одному нужен requests версии 2.28, другому 2.31, третий вообще завязан на пакет, который конфликтует с первыми двумя. Глобальная установка складывает их в одну кучу, и рано или поздно обновление под один проект ломает другой.
Виртуальное окружение — это не «продвинутая практика для больших команд». Это первое, что делают перед установкой любого пакета. Один проект — одно окружение.
Виртуальное окружение (сокращённо venv) — это отдельная папка с копией интерпретатора и собственным набором пакетов. Пакеты одного проекта не видят пакетов другого.
Термин: venv
venv — встроенный в Python модуль для создания изолированных окружений. Не требует установки, работает из коробки с Python 3.3+. Не путайте с virtualenv — это отдельный сторонний пакет с похожим назначением, для старта он не нужен.
Шаг за шагом
Создайте папку проекта и перейдите в неё.
mkdir myproject cd myprojectВсе следующие команды выполняются внутри этой папки.
Создайте виртуальное окружение.
python -m venv .venvНа macOS/Linux, если
pythonуказывает на Python 2, используйтеpython3 -m venv .venv. Проверка: в папке проекта появилась директория.venvс подпапкамиScripts(Windows) илиbin(macOS/Linux).Активируйте окружение.
Windows (PowerShell):
.venv\Scripts\Activate.ps1Windows (cmd):
.venv\Scripts\activate.batmacOS/Linux:
source .venv/bin/activateПроверка: в начале строки терминала появится префикс
(.venv). Теперьpythonиpipссылаются на копии внутри окружения, а не на системные.Обновите pip. В свежесозданном окружении часто лежит устаревшая версия.
python -m pip install --upgrade pipПроверка:
pip --versionпокажет номер версии и путь, ведущий внутрь папки.venv.Установите пакет.
pip install requestsПроверка:
pip show requestsвыведет имя, версию и путь установки. Или запустите короткую проверку прямо в интерпретаторе:python -c "import requests; print(requests.__version__)"Если печатается номер версии без ошибок — пакет установлен и импортируется.
Зафиксируйте зависимости. Чтобы коллега (или вы через месяц) собрал то же окружение:
pip freeze > requirements.txtФайл
requirements.txtхранит список пакетов с точными версиями. Восстановить окружение из него в другом месте:pip install -r requirements.txt.
Зачем закреплять версию пакета
Установка «просто последней версии» удобна ровно до того момента, когда автор пакета выпускает несовместимое обновление. Есть три способа задать версию явно:
| Запись | Что означает | Когда использовать |
|---|---|---|
requests | Любая доступная версия, обычно последняя | Быстрый эксперимент, не проект |
requests==2.31.0 | Ровно эта версия | requirements.txt для воспроизводимой сборки |
requests>=2.28,<3.0 | Не ниже 2.28, но не 3.x | Библиотека, которую ставят другие |
Для рабочего проекта фиксируйте точные версии через pip freeze. Диапазоны уместны, когда вы публикуете собственную библиотеку и не хотите намертво привязывать пользователя к одной версии зависимости.
Если не получилось
pip: command not foundили'pip' is not recognized. Вы вне активированного окружения либо pip не в PATH. Используйте формуpython -m pip install requests— она вызывает pip через интерпретатор и работает надёжнее.PowerShell ругается:
Activate.ps1 cannot be loaded because running scripts is disabled on this system. Windows блокирует выполнение скриптов. Разрешите для текущего пользователя одной командой:Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedПосле этого повторите активацию. Как альтернатива — активируйте через cmd, там политика не мешает.
Defaulting to user installation because normal site-packages is not writeable. Это сигнал, что вы ставите пакет в систему без прав, а не в окружение. Проверьте префикс(.venv)в строке терминала: если его нет, окружение не активировано.ModuleNotFoundError: No module named 'requests'при запуске скрипта. Пакет установлен в одно окружение, а скрипт запущен другим интерпретатором. Убедитесь, что запускаете через активированное окружение, и проверьте, откуда берётся python:python -c "import sys; print(sys.executable)"— путь должен вести в.venv.SSL: CERTIFICATE_VERIFY_FAILEDпри скачивании. Чаще на корпоративных сетях с прокси или на старых macOS без свежих сертификатов. На macOS запустите скриптInstall Certificates.commandиз папки установки Python. В корпоративной сети обратитесь к администратору за настройками прокси — обход проверки сертификатов делать не нужно.
Что делать дальше
Добавьте папку .venv в .gitignore — окружение не коммитят в репозиторий, вместо него хранят requirements.txt. Когда проектов станет несколько, посмотрите в сторону инструментов, которые управляют и окружением, и зависимостями одновременно: poetry или uv. Но для первого проекта связки venv + pip хватает полностью — не усложняйте раньше времени.
Логотип и фирменный стиль: Три концепции разного характера, палитра с обоснованием, проверка на читаемость в малом размере и в один цвет.
Спросить за 60 ₽Источники: Installing packages using pip and virtual environments — Python Packaging User Guide, venv — Creation of virtual environments (Python docs)
Частые вопросы
А если у меня Python 3.7 или старее?
Нужно ли активировать окружение каждый раз?
Чем venv отличается от conda?
Установил пакет, а импорт всё равно падает — что не так?
Что удалить, чтобы начать окружение заново?
Опасно ли ставить пакеты глобально хотя бы иногда?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.