Команда pip устанавливает пакет в окружение того интерпретатора Python, с которым она запущена. Если на компьютере несколько версий Python, короткая команда pip install может обратиться не туда. Надежнее связать вызов явно.

Создаем окружение проекта

python3 -m venv .venv

В Linux и macOS активируйте его командой source .venv/bin/activate, в PowerShell используйте .venv\Scripts\Activate.ps1. После активации приглашение терминала обычно меняется, но проверять путь все равно полезно.

python -c "import sys; print(sys.executable)"
python -m pip --version

Обе команды должны указывать на каталог .venv. Теперь установка python -m pip install requests затронет только текущий проект.

Почему лучше python -m pip

Так вы запускаете модуль pip выбранным интерпретатором. Это снимает путаницу между системным pip, pip3 и копией внутри окружения. Официальное руководство PyPA показывает тот же порядок в инструкции по pip и venv.

Что не нужно добавлять в Git

Каталог .venv создается заново, поэтому его включают в .gitignore. В репозиторий сохраняют список или декларацию зависимостей. Для классического проекта это может быть requirements.txt, для современного пакета чаще используют pyproject.toml.

Если установка упала с сообщением externally-managed-environment, не обходите защиту системного Python наугад. Создание venv обычно и есть правильное решение.