Как обновить пакет disutils PyYAML?
Я пытался установить chatterbot, который имеет зависимость от PyYAML = 3.12. На моей машине Ubuntu версия PyYAML - 3.11. Поэтому я использовал следующую команду для обновления PyYAML:
sudo -H pip3 install --upgrade PyYAML
Но это приводит к следующей ошибке:
Не удается удалить "PyYAML". Это проект, установленный на distutils, и поэтому мы не можем точно определить, какие файлы принадлежат ему, что приведет к частичной деинсталляции.
Моя PIP3 версия 10.0.0.
Как это решить?
Ответы
Ответ 1
Я нашел в этой проблеме Github, что pip 10 больше не удаляет пакеты distutils. Поэтому я понизился до пункта 8.1.1. И теперь это работает.
Если кто-нибудь, кто просматривает этот вопрос, знает, как удалить или обновить пакет distutils с помощью pip 10.0.0, пожалуйста, дайте мне знать здесь. :)
(Если кому-то нужно)
И чтобы понизить пип, я использовал следующее:
sudo -H pip3 install pip==8.1.1
Ответ 2
Попробуйте использовать флаг --ignore-installed
:
sudo -H pip3 install --ignore-installed PyYAML
Это работает, потому что для обновления пакета pip
сначала удаляет старую версию, а затем устанавливает новую версию. Это шаг деинсталляции для пакетов distutils. При --ignore-installed
флаге --ignore-installed
этап удаления пропускается, и новая версия просто устанавливается поверх старой.
Ответ 3
Выпуск:
Невозможно удалить PyYAML. Это установленный дистрибутивный проект, и поэтому мы не можем точно определить, какие файлы принадлежат ему, что приведет только к частичному удалению.
Решение: удалить пакет Dist и запустить
sudo rm -rf/usr/lib/python3/dist-packages/yaml
sudo rm -rf/usr/lib/python3/dist-packages/PyYAML-*
Удаление папки из distutils работает
Ответ 4
Я лично установил PyYAML на Anaconda, просто выполнив 'conda remove PyYAML', а затем выполнив мою команду pip.
Ответ 5
Вы можете попробовать это:
$pip install --ignore-installed PyYAML