Короткая команда 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.