После обновления версии pip
до 10.0.0
установка с помощью pip завершится с ошибкой, если конфликт версий с установленным пакетом distutils:
Cannot uninstall '***'. 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.
Это может быть для PyYAML, pyOpenSSL, urllib3, chardet
и т.д.
Я пытаюсь решить эту проблему, удалив соответствующие пакеты, такие как;
python-yaml python-openssl python-urllib3 python-chardet
с apt-get
(Ubuntu), а затем снова установите эти библиотеки с помощью pip
Однако, как и следовало ожидать, удаление apt-get
также приводит к удалению многих зависимых дополнительных системных пакетов, что, по-видимому, не является хорошей практикой:
The following packages will be REMOVED:
apt-xapian-index cloud-init landscape-client-ui-install oneconf python-aptdaemon python-aptdaemon.gtk3widgets python-chardet python-cupshelpers python-debian python-openssl python-pip python-requests python-ubuntu-sso-client python-urllib3 python-yaml sessioninstaller software-center ssh-import-id system-config-printer-common system-config-printer-gnome system-config-printer-udev ubuntu-desktop ubuntu-release-upgrader-gtk ubuntu-sso-client ubuntu-sso-client-qt update-manager update-notifier update-notifier-common
Я также не хочу понижать pip
до более старой версии.
Итак, что лучше всего обрабатывать конфликтующие библиотеки distutils с помощью pip?
Ps: Я предположил, что pip
предназначен для простого управления библиотеками Python
но этот инцидент делает его достаточно сложным.