pip uninstall: "Не найдено файлов для удаления."
Я создал модуль Python, назовите его "foo_bar".
Я могу установить его и обновить его, но не могу удалить его.
Я строю свой модуль, используя bdist_wheel:
$ python3 setup.py bdist_wheel
И я устанавливаю и обновляю его следующим образом:
$ python3 -m pip --timeout 60 install --upgrade dist/foo_bar-1.4.3-py3-none-any.whl
Он находится в каталоге фреймворка Python 3.4:
ls -al /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/
drwxr-xr-x 12 samwise admin 408 Jun 21 02:50 foo_bar
drwxr-xr-x 9 samwise admin 306 Jun 21 02:50 foo_bar-1.4.3.dist-info
И это перечислено в пипсовке:
$ python3 -m pip freeze
foo-bar==1.4.3
Тем не менее, если я пытаюсь выполнить удаление pip, он не может найти свои файлы
$ python3 -m pip uninstall foo-bar
Can't uninstall 'foo-bar'. No files were found to uninstall.
Я что-то не так сделал в своем файле setup.py, чтобы не найти файлы моих модулей во время удаления?
Информация о версии выглядит следующим образом:
$ python3 --version
Python 3.4.4
$ python3 -m pip --version
pip 8.1.2 from /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages (python 3.4)
5 ответов
Я была такая же проблема. С помощью verbose
помог мне узнать чуть больше причину:
$ pip3 uninstall --verbose my-homemade-package
Not sure how to uninstall: my-homemade-package e48e635 - Check: /home/olivier/my-homemade-package
Can't uninstall 'my-homemade-package'. No files were found to uninstall.
Удаление всего, что было 'my-homemade-package' связано с /usr/local/python2.x
а также /usr/local/python3.x
не помогло.
Я сделал pip3 show my-homemade-package
и получил расположение установленного пакета на моем компьютере:
$ pip3 show my-homemade-package
Name: my-homemade-package
Version: e48e635
Summary: My Home Made package
Home-page: UNKNOWN
Author: UNKNOWN
Author-email: UNKNOWN
License: Proprietary
Location: /home/olivier/my-homemade-package
Requires: pyOpenSSL, pyasn1, protobuf
Удаление /home/olivier/my-homemade-package
Разобрался с проблемой (т.е. пакет не был указан).
Итак, у меня была проблема, аналогичная OP. Я мог бы установить свой пакет с помощью
pip install dist/mypackage.tar.gz
. Установка будет работать нормально, но в конце будет отображаться
Can't uninstall 'mypackage'. No files were found to uninstall.
, и действительно не будет работать позже.
Звучит глупо, но у меня сработало сменить рабочий каталог : как только я ушел
mypackage/
каталог
pip uninstall mypackage
работал.
Это старый пост, но он был лучшим результатом в Google. Приведенные выше ответы верны, однако в моем случае все еще была строка /usr/local/lib/python3.6/site-packages/easy-install.pth, которую мне пришлось удалить после удаления файлов яиц.
У меня возникла такая проблема, когда я переименовал свой модуль в
setup.py
.
Старый каталог все еще существовал в
my_module
каталог. Итак, когда я установил модуль с
pip install -e .
пип создал линию в
python3.8/site-packages/easy-install.pth
указывая на каталог модуля. После этого модуль был указан с обоими именами: и
old-name
. И когда я попытался удалить старый модуль с помощью
pip remove old-name
pip показал ошибку:
Found existing installation: old-name 0.3.0
Can't uninstall 'old-name'. No files were found to uninstall.
Решением было удалить каталог
old_name.egg-info
из каталога модуля. После этого
pip list
показывает только
new-name
.
Вероятно, это не прямой ответ на исходное сообщение, а одно из решений проблемы в названии темы.
Проблема: пользователь не может удалить пакет python, установленный через pip:
pip uninstall youtube-dl
Found existing installation: youtube-dl 2021.12.17
Not uninstalling youtube-dl at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'youtube-dl'. No files were found to uninstall.
Причина: PEBKAC.
Ну, простой
apt purge youtube-dl
сделал трюк. Был установлен системный пакет «youtube-dl» с указанной версией:
dpkg -l youtube-dl
ii youtube-dl 2021.12.17-1~nd110+1
В то же время пользователи устанавливали пакеты локально, используя pip. Оба пакета одной версии (2021.12.17). И оба способа (apt и pip) ссылаются на пакеты с одним и тем же именем. Выяснилось, что это сбивает пользователей с толку.
Следующий уровень: установите пакет тремя способами: apt, pip --system и простой pip от имени пользователя. Может быть, пип как root (локально) FWIW тоже.