pip не может удалить <package>: «Это установленный distutils проект» - PullRequest
0 голосов
/ 17 декабря 2018

Я пытался установить модуль Twilio:

sudo -H pip install twilio

И я получил эту ошибку:

Installing collected packages: pyOpenSSL
  Found existing installation: pyOpenSSL 0.13.1
Cannot uninstall 'pyOpenSSL'. 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.

Кто-нибудь знает, как удалить pyOpenSSL?

1 Ответ

0 голосов
/ 17 декабря 2018

Эта ошибка означает, что метаданные этого пакета не включают в себя список файлов, которые ему принадлежат. Скорее всего, вы установили этот пакет через менеджер пакетов вашей ОС, поэтому вам нужно использовать его вместо pip для его обновления или удаления.

См., Например, Обновление до версии 10. Это установленный дистрибутивный проект, и поэтому мы не можем точно определить, какие файлы принадлежат ему, что приведет только к частичному удалению.· Ошибка # 5247 · pypa / pip для одного такого примера, когда пакет был установлен с apt.


В качестве альтернативы, в зависимости от ваших потребностей, может оказаться более продуктивным не использовать вашСистемный Python и / или его глобальная среда, но создайте частную установку Python и / или среду.Здесь есть много опций, включая virtualenv, venv, pyenv, pipenv и установку Python из исходного кода в /usr/local или $HOME / $HOME/.local (или /opt/<whatever>).


Наконец, я должен прокомментировать часто предлагаемые (например, pip 10 и apt: как избежать ошибок «Cannot uninstall X» для пакетов distutils ) --ignore-installed pip switch.

Это может работать (возможно, достаточно долго для нужд вашего бизнеса), но может также привести к непредсказуемым последствиям в системе.Одно можно сказать наверняка: это делает конфигурацию системы неподдерживаемой и, следовательно, не поддерживаемой - потому что вы по существу перезаписали файлы из вашего дистрибутива другими произвольными вещами.Например:

  • Если новые файлы являются двоичными, несовместимыми со старыми, другое программное обеспечение из дистрибутива, созданное для связи с оригиналами, будет зависать или иным образом работать неправильно.
  • Если новая версияимеет другой набор файлов, в результате вы получите смесь старых и новых файлов, которые могут сломать как зависимое программное обеспечение, так и сам пакет.
  • Если вы позже измените пакет с помощью менеджера пакетов вашей ОС, он будет перезаписывать pip -установленные файлы с такими же непредсказуемыми результатами.
  • Если существуют такие вещи, как файлы конфигурации, различия в версиях между ними также могут привести к всевозможным поломкам.
...