Existe uma --user
opção para o pip que pode instalar um pacote Python por usuário:
pip install --user [python-package-name]
Usei esta opção para instalar um pacote em um servidor para o qual não tenho acesso root. O que eu preciso agora é desinstalar o pacote instalado no usuário atual. Eu tentei executar este comando:
pip uninstall --user [python-package-name]
Mas eu tenho:
no such option: --user
Como posso desinstalar um pacote com o qual instalei pip install --user
, além de encontrar e excluir manualmente o pacote?
Encontrei este artigo
O pip não pode desinstalar do diretório de pacotes de sites por usuário
que descreve que a desinstalação de pacotes do diretório do usuário não é suportada. Segundo o artigo, se foi implementado corretamente, então com
pip uninstall [package-name]
o pacote que foi instalado também será pesquisado nos diretórios do usuário. Mas um problema ainda permanece para mim. E se o mesmo pacote fosse instalado em todo o sistema e por usuário? E se alguém precisar segmentar um diretório de usuário específico?
fonte
--user
, a desinstalação sem o--user
fará o que você deseja.Respostas:
Depois de testar isso usando Python 3.5 e pip 7.1.2 no Linux, a situação parece ser a seguinte:
pip install --user somepackage
instala$HOME/.local
e desinstalar funciona usandopip uninstall somepackage
.Isso ocorre se o
somepackage
sistema também está instalado ou não ao mesmo tempo.Se o pacote estiver instalado nos dois locais, apenas o local será desinstalado. Para desinstalar o pacote em todo o sistema
pip
, primeiro desinstale-o localmente e, em seguida, execute o mesmo comando de desinstalação novamente, comroot
privilégios.Além do diretório de instalação do usuário predefinido,
pip install --target somedir somepackage
o pacote será instaladosomedir
. Não há como desinstalar um pacote desse local usandopip
. (Mas há uma solicitação de pull imersa um tanto antiga no Github que é implementadapip uninstall --target
.)Como os únicos locais a serem
pip
desinstalados são em todo o sistema e local do usuário predefinido, você precisa executarpip uninstall
como o respectivo usuário para desinstalar do diretório de instalação local de um determinado usuário.fonte
jedi
instalado no/usr/lib64/python2.7/site-packages/
. Quando eu faço, como um usuário normal:pip install --user jedi
epip uninstall jedi
, em seguida , o pip tenta desinstalar/usr/lib64/python2.7/site-packages/jedi
e, em seguida, iniciaPermission denied
. Portanto, se--user
não existir para o comando de desinstalação, como eu digo para desinstalar para não tentar desinstalar,/usr/lib64/python2.7/site-packages/jedi
mas~/.local/lib64/python3.6/site-packages/jedi
?Exemplo para desinstalar o pacote 'oauth2client' no MacOS:
fonte
Tenha cuidado, porém, para aqueles que usam
pip install --user some_pkg
dentro de um ambiente virtual .Nesse caso, você deve desativar o ambiente virtual atual e , em seguida, usar o correspondente
python
/pip
executável para listar ou desinstalar os pacotes do site do usuário:Observe que esse problema foi relatado alguns anos atrás . E parece que a conclusão atual é:
--user
não é válida dentro de um ambiente virtualpip
, pois a localização de um usuário não faz realmente sentido para um ambiente virtual.fonte
--user
no interior do env virtual, há alguma maneira de reverter isso ?, porquepip list
não trabalho ....Eu acho que é possível desinstalar os pacotes instalados com o
--user
flag. Este funcionou para mim;pip freeze --user | xargs pip uninstall -y
Para python 3;
pip3 freeze --user | xargs pip3 uninstall -y
Mas, de alguma forma, esses comandos não desinstalam o setuptools e o pip. Após esses comandos (se você realmente deseja um python limpo), você pode excluí-los;
pip uninstall setuptools && pip uninstall pip
fonte
A resposta ainda não é possível . Você precisa removê-lo manualmente.
fonte
Como o @ thomas-lotze mencionou, atualmente o pip tooling não faz isso, pois não existe a opção --user correspondente. Mas o que eu acho é que posso fazer check-in ~ / .local / bin e procurar o pip #. # Específico que me parece que corresponde à opção --user.
No meu caso:
E então desinstale com a versão específica do pip.
fonte
./pip2 freeze | grep -v "^-e" | xargs pip uninstall -y
para tudo, exceto os pacotes instalados no modo editávelEstou executando o Anaconda versão 4.3.22 e um ambiente python3.6.1, e tive esse problema. Aqui está a história e a correção:
Fiz isso no meu ambiente python3.6 e recebi esse erro.
Em seguida, tentei baixar o python3.6 e colocar o python3.dll na pasta e em várias pastas. nada mudou.
finalmente, isso corrigiu:
(a outra versão do conda-forge ainda está instalada) Isso deixou apenas a versão do conda e funciona na 3.6.
trabalhando!
fonte