Instalei acidentalmente pacotes Python no meu sistema usando em pip
vez de apt-get
. Eu fiz isso de duas maneiras:
- usando uma versão mais antiga do virtualenv, esqueci de anexar
--no-site-packages
ao criar o virtualenv - depois disso, quando ligueipip install
, os pacotes Python foram instalados no sistema em vez do virtualenv - em um virtualenv configurado corretamente, digitei
sudo pip install somepackage
- o sudo instalado no sistema em vez do virtualenv
Por acaso notei isso porque digitei pip freeze
fora de um virtualenv e vi alguns pacotes Python listados que não deveriam estar lá. Então agora minha pergunta é:
- como identifico todos os pacotes Python que foram instalados erroneamente no sistema (ou seja, pacotes Python que aparecem na
pip freeze
lista, mas não foram instaladosapt-get
)? - como faço para removê-los?
python
package-management
pip
david.libremone
fonte
fonte
sudo rm -r /usr/local/lib/python2.7
. Por enquanto, tudo bem./usr/local/lib/python3.5
e, após algum tempo, uma atualização doupdate-notifier-common
pacote falhou devido à falta dosix
pacote Python 3 . Acabei instalandosix
comsudo -H pip3 install six
./usr/local/bin/
(há algum tempo eu apenas removi/usr/local/lib/python3.5
e mudei para o conda ).Atualmente, o Pip ignora os comandos de desinstalação que tentam desinstalar algo de propriedade do sistema operacional. Não apresenta erros, como ocorre com um pacote ausente. Portanto, agora você pode desinstalar com o seguinte processo:
Edite o arquivo despejado para remover qualquer linha de
-e
"instalação editável", tudo após o==
sinal (%s;==.*;;g
no vim), troque as novas linhas por espaços (%s;\n; ;g
no vim). Em seguida, você pode desinstalar todos os pacotes não pertencentes aoEu tive que fazer esse procedimento duas vezes, porque alguns pacotes também foram instalados
~/.local/lib
.fonte
sudo pip uninstall -y $(pip freeze | sed 's;==.*;;g' | tr '\n' ' ')
pip
. No archlinux,pip
desinstala felizmente os pacotes do sistema. Por outro lado,pip
no debian jessie se queixa e erros:Not uninstalling virtualenv at /usr/lib/python3/dist-packages, owned by OS
O AFAIK
sudo pip install
será instalado em/usr/local/lib/pythonVERSION/dist-packages
. Você precisa executarsudo pip uninstall
para desinstalar os pacotes em todo o sistema. Parece quepip freeze
procura por metadados do pacote e listará qualquer coisa instalada, isto é, tanto do pip quanto do apt-get fora do virtualenvs. Há uma-l
opção dentro do ambiente virtual para listar pacotes aplicáveis apenas a esse ambiente virtual, mas parece ser o caso padrão também dentro do ambiente virtual. Eu acho que você pode excluir pacotes relacionados/usr/local/lib/pythonVERSION/dist-packages
também, mas não é um método muito conveniente, eu acho.fonte
Para remover um pacote instalado via pip, basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o comando abaixo.
Para procurar pacotes
Para determinar quais pacotes Python foram instalados pelo pip, pelo
freeze
comando que fornecerá uma lista dos pacotes instalados e suas versões. Sugiro remover todas as instâncias e reinstalar usando osudo apt-get
comandofonte
pip uninstall
posso usarsudo pip install
em primeiro lugar?pip freeze
mostra apenas os pacotes instalados (AFAICS).Eu precisava limpar o espaço em disco dos pacotes Python com segurança. Embora essa seja uma limpeza completa dos pacotes, eu precisava mover as versões do Python também, para não precisar de pacotes antigos. Usei o seguinte para obter todos os nomes de meus pacotes, pular as 2 primeiras linhas e pegar a primeira coluna e desinstalar sem a interação do usuário:
fonte
Isso tem algo a ver com o Homebrew. Não tive problemas com o pyodbc no meu Mac Air até instalar o Homebrew e usá-lo para algumas coisas. Encontrei este tópico no github que termina em uma solução que funcionou para mim.
"Se você possui o Homebrew, basta instalar os cabeçalhos ODBC:
e execute "pip install pyodbc" novamente. "
Isso 100% resolveu o problema para mim e levou apenas um momento. Experimente.
fonte