2025, Nov 04 15:02
Надежная установка Selenium 4.2.0 в Ubuntu 24.04 под WSL через venv и PyPI
Устанавливаем Selenium 4.2.0 в Ubuntu 24.04 под WSL: обходим ошибку externally managed environment и ограничения apt, создаем venv и ставим пакет из PyPI.
Зафиксировать Selenium на точной версии в Ubuntu 24.04 под WSL может оказаться неожиданно непросто. Глобальная установка через sudo pip блокируется ошибкой externally managed environment, а apt не ставит произвольные версии по запросу. Ниже — аккуратный и надежный способ получить Selenium 4.2.0 (или 4.2.1), не вступая в конфликты с системой.
В чем проблема
Попытка глобальной установки через sudo pip упирается в жесткую блокировку:
$ sudo pip install selenium==4.2.0
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.Переход на apt тоже не решает задачу фиксации версии:
$ sudo apt-get install python3-selenium=4.2.0
Package python3-selenium is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Version '4.2.0' for 'python3-selenium' was not foundПочему так происходит
Установка пакетов через sudo в системный интерпретатор намеренно запрещена. Окружение управляется инструментами ОС, поэтому система отклоняет прямую запись от pip. С другой стороны, репозитории Debian/Ubuntu поставляют лишь один конкретный билд библиотеки за раз — и он редко совпадает с требуемой вам точной версией.
Репозитории Debian APT содержат только одну версию тех или иных библиотек, и если вам нужна строго определенная, скорее всего она не совпадет. Вместо этого создайте виртуальное окружение для своего приложения.
Версия Selenium в репозиториях Debian/Ubuntu сломана... всегда берите ее с PyPI.
Решение
Используйте изолированное окружение Python и ставьте пакет из PyPI. Так вы полностью обходите системный интерпретатор и можете закрепить ровно нужную версию.
python3 -m venv .env_isolated
source .env_isolated/bin/activate
pip install selenium==4.2.0После активации pip устанавливает пакеты только в это локальное окружение. Вы получаете требуемую версию, не затрагивая Python, которым управляет ОС.
Почему это важно
Зависимость от системного интерпретатора привязывает ваше приложение к политике дистрибутива и одной-единственной упакованной версии — это мешает точному управлению зависимостями. Изоляция зависимостей сохраняет базовую систему стабильной, делает окружения воспроизводимыми и предотвращает битые или несовместимые сборки. В случае с Selenium оптимальный и ожидаемый путь — ставить его из PyPI внутри виртуального окружения.
Вывод
Не используйте sudo pip и не рассчитывайте, что apt установит строго заданную версию Python-пакета. Создайте виртуальное окружение, активируйте его и установите selenium==4.2.0 из PyPI. Это соответствует подходу Ubuntu к управлению Python, обеспечивает именно ту версию, которая вам нужна, и предотвращает конфликты с системными пакетами.
Материал основан на вопросе на StackOverflow от пользователя user93353 и ответе Corey Goldberg.