Как сломать pip, и как его починить

Published Aug 03, 2018 22:00 UTC on Yaroslav's weblog

Бывает такое что программу которую мы используем предлагает нам какое-то действие. И подумаешь, почему бы не следовать совету, ведь разработчики красавчики сделали прекрасную работу разрабатывая эту программу, они наверно знают о чем они говорят.

С pip'ом походу это так не работает. Я столкнулся с этой проблемой сначала на моем ноутбуке, а затем на своем настольном компьютере (У меня на обоих стоит Manjaro). На своем ноутбуке я решил проблему, и когда снова с ней столкнулся на настольном, я забыл как ее решить. Проблема заключается в том что pip отказывается установить пакет, выдавая исключение, например 'ModuleNotFoundError'.

Сначала, я вам расскажу что НЕ надо делать чтобы избежать данную проблему.

У вас терминале может появится следующее сообщение после того как вы пользовались pip'ом

You are using pip version x.x.x, however version x.x is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Если вы видете такое, или похоже сообшение (например, тоже самое но на русском), не обращаете на него внимание. Даже не смотрите на него. Просто сделаете вид что его нет. Я послушался советом этого сообщения, и вот, из-за этого а теперь я пишу запись на своем блоге о том как решить ошибку которая возникает из-за того что следовал этим советом. По крайней мере не обращайте внимание на это сообщение если у вас дистрибутив основан на Arch. На счет других дистрибутивов я не знаю как следует поступать.

Однако, если вы работаете в виртуальной среде, можно и надо использовать pip для обновления самого pip'a. Но если используем pip чтобы установить пакеты на уровне системы, то следует пользоваться своим менеджером пакетов (pacman) для обновления pip'a, поскольку сам менеджер пакетов обновит ваш pip вместе с остальными пакетами системы когда этого потребуется.

Решение

Если вы, увы, как и я, послушались pip'a и обновили его через самого себя (то есть обновили pip используя сам pip) то сначала потребуется удалить некоторые файлы:

$ sudo rm -rf /usr/lib/python3.6/site-packages/pip /usr/lib/python3.6/site-packages/pkg_resources

Then, you should reinstall pip and setup tools:

$ sudo pacman -S python-setuptools python-pip

Вот и все! Ваш pip готов к работе.

Решение проблемы я нашел на форумах arch: https://bbs.archlinux.org/viewtopic.php?id=237451