Подтвердить что ты не робот

Почему не удается удалить pysqlite?

Я пытаюсь удалить pysqlite из своей системы, используя pip.

То, что я делаю, не имеет смысла:

$ pip uninstall pysqlite

Команда работала, но наблюдайте за ней:

$ pip freeze
[...]
pysqlite==1.0.1

Повторите попытку

$ pip uninstall pysqlite
Can't uninstall 'pysqlite'. No files were found to uninstall.

Nop, кажется, удаляется, но все еще отображается в pip freeze

Теперь пришло удовольствие

$ pip install pysqlite
Requirement already satisfied (use --upgrade to upgrade): pysqlite in /usr/lib/python2.6/dist-packages
Cleaning up...

Достаточно справедливо:

$ pip install -U pysqlite
[...]
error: command 'gcc' failed with exit status 1
[...]
Can't roll back pysqlite; was not uninstalled
[...]

Я просто не понимаю. Почему не удается удалить pysqlite?

4b9b3361

Ответ 1

Перейдите в /usr/lib/python2.6/site-packages/pysqlite*.egg/ (или где-нибудь еще, где вы храните яйца на пути python) и найдите файл installed-files.txt.

Если он не существует, pip не сможет удалить его, если это произойдет, вы удалите все файлы внутри, и вы избавитесь от pysqlite. И, как предполагает Мартийн, вы также должны проверить, не установили ли вы пакет с другим менеджером пакетов.

Если у вас нет installed-files.txt, и ваш пакет не был установлен через диспетчер пакетов третьей части, вы должны посмотреть, где находится ваше яйцо, и удалить его из пути python. Обычно яйца также записывают файлы в каталог, где они лежат, поэтому вы должны искать каталог pysqlite/ в каталоге, где лежит pysqlite.egg.

Ответ 2

Для записи мне удалось обновить пакет, с которым я столкнулся, с использованием флага, установленного --ignore, например.

 pip install python-dateutil --upgrade --ignore-installed

Ответ 3

Просто дайте другой путь.

I pip-installed ykdl, для которого требуются m3u8 и iso8601.

Затем я захотел удалить их все, pip uninstall ykdl iso8601 m3u8. ykdl и iso8601 исчезли, но я не смог удалить m3u8. И я увидел его в pip list. Я тоже озадачился.

Наконец. Когда я попытался импортировать m3u8, он потерпел неудачу и сказал 'needs iso8601'. Поэтому я установил iso8601, затем удалил m3u8, iso8601 один за другим. Он работал

=====

Это было на ubuntu. Но на моей Windows 10 я успешно удалил iso8601 m3u8 ykdl. Захватывающие!