Существует --user
опция для pip, которая может установить пакет Python для пользователя:
pip install --user [python-package-name]
Я использовал эту опцию, чтобы установить пакет на сервер, для которого у меня нет прав root. Теперь мне нужно удалить установленный пакет для текущего пользователя. Я попытался выполнить эту команду:
pip uninstall --user [python-package-name]
Но я получил:
no such option: --user
Как я могу удалить пакет, с которым я установил pip install --user
, кроме поиска и удаления пакета вручную?
Я нашел эту статью
pip не может удалить из пользовательского каталога site-packages
который описывает, что удаление пакетов из каталога пользователя не поддерживается. Согласно статье, если это было реализовано правильно, то с
pip uninstall [package-name]
пакет, который был установлен, будет также найден в пользовательских каталогах. Но проблема все еще остается для меня. Что если один и тот же пакет был установлен как для всей системы, так и для пользователя? Что, если кому-то нужно ориентироваться на конкретный пользовательский каталог?
источник
--user
то удаление без--user
будет делать то, что вы хотите.Ответы:
Протестировав это с использованием 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
от имени соответствующего пользователя для удаления из локального каталога установки данного пользователя.источник
jedi
установлен в/usr/lib64/python2.7/site-packages/
. Когда я это делаю, как обычный пользователь:pip install --user jedi
и затемpip uninstall jedi
, pip пытается удалить,/usr/lib64/python2.7/site-packages/jedi
а затем выкинуть сPermission denied
. Так что, если--user
не существует для команды удаления, как я могу сказать удалить не пытаться удалить,/usr/lib64/python2.7/site-packages/jedi
но~/.local/lib64/python3.6/site-packages/jedi
?Пример удаления пакета «oauth2client» в MacOS:
источник
Будьте осторожны, тем, кто использует
pip install --user some_pkg
внутри виртуальной среды .В этом случае вам нужно деактивировать текущую виртуальную среду , а затем использовать соответствующий
python
/pip
исполняемый файл для вывода списка или удаления пакетов сайта пользователя:Обратите внимание, что эта проблема была зарегистрирована несколько лет назад . И кажется, что текущий вывод таков:
--user
недопустимоpip
в виртуальной среде, поскольку местоположение пользователя не имеет смысла для виртуальной среды.источник
--user
в виртуальной среде, есть ли способ отменить это ?, потомуpip list
что не работает ....Я думаю, что можно удалить пакеты, установленные с
--user
флагом. Этот работал для меня;pip freeze --user | xargs pip uninstall -y
Для питона 3;
pip3 freeze --user | xargs pip3 uninstall -y
Но почему-то эти команды не удаляют setuptools и pip. После этих команд (если вы действительно хотите чистый python) вы можете удалить их с помощью;
pip uninstall setuptools && pip uninstall pip
источник
--user
флагом! теперь, чтобы переустановить их в моей среде Анаконды ...Ответ пока невозможен . Вы должны удалить его вручную.
источник
Как упомянул @ thomas-lotze, в настоящее время инструменты pip этого не делают, так как нет соответствующей опции --user. Но я обнаружил, что могу проверить в ~ / .local / bin и найти конкретный пункт #. #, Который, как мне кажется, соответствует опции --user.
В моем случае:
А затем просто удалите с определенной версией пипа.
источник
./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y
для всего, кроме пакетов, установленных в редактируемом режимеЯ использую Anaconda версии 4.3.22 и среду python3.6.1, и у меня возникла эта проблема. Вот история и исправление:
Я сделал это в моей среде python3.6 и получил эту ошибку.
Затем я попытался скачать python3.6 и положить python3.dll в папку и в разные папки. Ничего не изменилось.
наконец, это исправлено:
(другая версия conda-forge все еще установлена) Это оставило только версию conda, и это работает в 3.6.
работает!
источник