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

Свяжите команду с Python

Запуск через python -m pip использует указанный интерпретатор, поэтому пакет попадет в его site-packages, а не в первую программу pip из переменной PATH.

python -m pip install package_name

Сравните реальные пути

Перед изменением окружения выведите sys.executable и версию pip, затем убедитесь, что оба пути относятся к одному venv, контейнеру или системному интерпретатору на конкретной машине.

Не полагайтесь на приглашение

Активированное venv обычно меняет PATH, но shell alias, несколько менеджеров Python или устаревший launcher способны оставить неожиданную команду первой.

В скриптах CI сохраняйте полный вызов и путь интерпретатора, чтобы журнал однозначно показывал, какое окружение действительно получило зависимости.

Другой интерпретатор разбирает pip –python. Поведение подтверждает руководство pip.