Ответ 1
Виртуальная среда Python
может помочь обрабатывать конфликтующие библиотеки даже с более новыми версиями pip
Настройка virtualenv
Python3
имеет встроенную виртуальную среду. В случае Python2
для этой цели можно использовать virtualenv
.
Используйте следующие команды для настройки virtualenv
sudo pip install virtualenv
venv_path="${HOME}/py_venv"
mkdir -p "${venv_path}"
virtualenv "${venv_path}"
Он может быть активирован командой source
source "${venv_path}/bin/activate"
(py_venv) [email protected]_machine:~$
и может быть деактивирована командой deactivate
(py_venv) [email protected]_machine:~$ deactivate
[email protected]_machine:~$
Подтвердить пути для python и pip
(py_venv) [email protected]_machine:~$ which python
/home/my_user/py_venv/bin/python
(py_venv) [email protected]_machine:~$ which pip
/home/my_user/py_venv/bin/pip
Помните, что по умолчанию выполнение с помощью sudo
не указывает на virtualenv
(py_venv) [email protected]_machine:~$ sudo which python
/usr/bin/python
(py_venv) [email protected]_machine:~$ sudo which pip
/usr/local/bin/pip
Установка/удаление пакетов с помощью pip
(py_venv) [email protected]_machine:~$ pip install ansible
Успешно установлено в virtualenv
(py_venv) [email protected]_machine:~$ which ansible
/home/my_user/py_venv/bin/ansible
Удалите конфликтующий системный пакет в virtualenv
(py_venv) [email protected]_machine:~$ pip uninstall urllib3
Skipping urllib3 as it is not installed.
Удалите один и тот же пакет в реальной среде
(py_venv) [email protected]_machine:~$ deactivate
[email protected]_machine:~$ pip uninstall urllib3
Cannot uninstall 'urllib3'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Как можно увидеть с помощью виртуальной среды Python
, становится возможным использовать более новые версии pip
для установки и удаления библиотек Python
не касаясь системных пакетов.