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

Как удалить пакет, установленный с помощью pip install --user

Существует опция --user для pip, которая может установить пакет Python для каждого пользователя:

pip install --user [python-package-name]

Я использовал эту опцию для установки пакета на сервере, для которого у меня нет доступа root. Теперь мне нужно удалить установленный пакет для текущего пользователя. Я попытался выполнить эту команду:

pip uninstall --user [python-package-name]

Но я получил:

no such option: --user

Как удалить пакет, который я установил с помощью pip install --user, кроме ручного поиска и удаления пакета?

Я нашел эту статью

pip не может удалить из каталога сайтов сайтов для каждого пользователя

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

pip uninstall [package-name]

установленный пакет будет также выполняться в пользовательских каталогах. Но проблема все еще остается для меня. Что делать, если один и тот же пакет был установлен как для всей системы, так и для каждого пользователя? Что делать, если кому-то нужно настроить таргетинг на конкретный каталог пользователей?

4b9b3361

Ответ 1

Проверяя это с помощью Python 3.5 и pip 7.1.2 в Linux, ситуация выглядит так:

  • pip install --user somepackage устанавливается на $HOME/.local, а его удаление выполняется с помощью pip uninstall somepackage.

  • Это верно, независимо от того, установлена ​​ли также одновременно somepackage общесистемная.

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

  • В дополнение к предопределенному каталогу установки пользователя pip install --target somedir somepackage будет установлен пакет в somedir. Невозможно удалить пакет из такого места с помощью pip. (Но на Github есть несколько старый несвязанный запрос на растяжение, который реализует pip uninstall --target.)

  • Поскольку единственные места pip когда-либо удаляются из системного и предопределенного локально-локального пользователя, вам необходимо запустить pip uninstall в качестве соответствующего пользователя для удаления из локального каталога установки локального пользователя.

Ответ 2

пример удаления пакета "oauth2client" на MacOS:

pip uninstall oauth2client

Ответ 3

Ответ Невозможно еще. Вы должны удалить его вручную.

Ответ 4

Как упомянул @thomas-lotze, в настоящее время инструменты pip этого не делают, поскольку нет соответствующей опции --user. Но я обнаружил, что могу проверить в ~/.local/bin и найти конкретный пункт #. #, Который, как мне кажется, соответствует опции --user.

В моем случае:

[email protected]: ~/.l/bin$ pwd
/home/antho/.local/bin
[email protected]: ~/.l/bin$ ls pip*
pip  pip2  pip2.7  pip3  pip3.5

А затем просто удалите с определенной версией пипа.

Ответ 5

Я использую Anaconda версии 4.3.22 и среду python3.6.1, и у меня возникла эта проблема. Вот история и исправление:

pip uninstall opencv-python # -- the original step. failed.

ImportError: DLL load failed: The specified module could not be found.

Я сделал это в моей среде python3.6 и получил эту ошибку.

python -m pip install opencv-python # same package as above.
conda install -c conda-forge opencv # separate install parallel to opencv
pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it.

Затем я попытался загрузить python3.6 и поместить python3.dll в папку и в разные папки. Ничего не изменилось.

наконец, это исправлено:

pip uninstall opencv-python

(другая версия conda-forge все еще установлена) Это оставило только версию conda, и это работает в 3.6.

>>>import cv2
>>>

за работой!

Ответ 6

Будьте осторожны, тем, кто использует pip install --user some_pkg в виртуальной среде.

$ path/to/python -m venv ~/my_py_venv
$ source ~/my_py_venv/bin/activate
(my_py_venv) $ pip install --user some_pkg
(my_py_venv) $ pip uninstall some_pkg
WARNING: Skipping some_pkg as it is not installed.
(my_py_venv) $ pip list
# Even 'pip list' will not properly list the 'some_pkg' in this case

В этом случае вам нужно деактивировать текущую виртуальную среду, а затем использовать соответствующий исполняемый файл python/pip вывода списка или удаления пакетов сайта пользователя:

(my_py_venv) $ deactivate
$ path/to/python -m pip list
$ path/to/python -m pip uninstall some_pkg

Обратите внимание, что эта проблема была зарегистрирована несколько лет назад. И, кажется, что текущий вывод является: --user не действует в виртуальном окр pip, так как местоположение пользователя не имеет смысла для виртуальной среды.

Ответ 7

Вы можете удалить все пакеты одновременно.

1. First, install pip-purge.

  pip install pip-purge

2. Then, Run

    pip-purge

Удостоверьтесь, чтобы только бежать в virtualenv