Para a família Ubuntu, usuários Debian, Linux Mint
Graças à explicação de Anthony acima , você pode manter o pip do sistema original (em / usr / bin / e dist-packages /) e remover o pip instalado manualmente (em ~ / .local /) para resolver o conflito:
$ python3 -m pip uninstall pip
O Ubuntu / Debian pip v8.1.1 (16.04) do python3-pip
pacote debian (veja $ pip3 -V
) mostra os mesmos resultados de pesquisa que o pip mais recente v10.0.1 e instala os módulos mais recentes do PyPI. Possui um pip
comando de trabalho (já no $ PATH), além da boa --user
opção corrigida desde 2016. Observando as notas de versão do pip , as versões mais recentes são principalmente sobre correções de erros específicas de casos de uso e alguns novos recursos, por isso não todo mundo tem que se apressar em atualizar o pip ainda. E o novo pip 10 pode ser implantado nos virtualenvs do Python, de qualquer maneira.
Mas, independentemente de pips, seu sistema operacional permite instalar rapidamente módulos comuns do Python (incluindo numpy) com o APT, sem a necessidade de pip, por exemplo:
$ sudo apt install python3-numpy python3-scipy
(com dependências do sistema)
$ sudo apt install python3-pip
(pip com patch do Debian, um pouco mais antigo, mas não importa)
Lembrete de sintaxe de aptidão rápida (consulte os man apt
detalhes):
$ sudo apt update
(para ressincronizar os arquivos de índice de pacotes Ubuntu de fontes atualizadas)
$ apt search <python-package-name>
(pesquisa de texto completa em todos os pacotes disponíveis)
$ apt show <python-package-name>
(exibe a descrição detalhada do pacote)
$ sudo apt install <python-package-name>
Os nomes dos pacotes prefixados python-
são para Python 2; e prefixados com python3-
são para Python 3 (por exemplo, python3-pandas). Existem milhares e eles passam por testes de integração no Debian e no Ubuntu. A menos que você procure instalar no nível por usuário ( pip install --user
opção) ou no virtualenv / venv, o apt pode ser o que você precisa. Esses pacotes de sistema também são acessíveis a partir de envs virtuais, pois o virtualenv volta a usar as libs do sistema na importação se seus envs não fornecerem cópias dos módulos. Seus --user
módulos por usuário instalados sob medida (com pip ) por usuário ~/.local/lib
também os substituirão.
Observe que, como se trata de uma instalação em todo o sistema , você raramente precisará removê-los (é preciso ter cuidado com as dependências do SO). Isso é conveniente para pacotes com muitas dependências do sistema (como com scipy ou matplotlib), pois o APT acompanhará e fornecerá todas as libs do sistema e extensões C necessárias, enquanto no pip você não tem essas garantias .
De fato, para pacotes Python em todo o sistema (em contraste com o usuário, o nível de diretório inicial ou menos), o Ubuntu espera usar o gerenciador de pacotes APT (em vez de sudo pip
) para evitar a quebra do SO: sudo pip3
direciona o mesmo /usr/lib/python3/dist-packages
diretório em que o APT armazena o SO módulos sensíveis. As versões recentes do Debian / Ubuntu dependem bastante do Python 3, portanto seus módulos pré-instalados são gerenciados apt
e não devem ser alterados.
Portanto, se você usar o pip3 install
comando, assegure-se de que ele seja executado em um ambiente de desenvolvimento virtual isolado, como virtualenv ( sudo apt install python3-virtualenv
) ou Python3 interno ( -m venv
) ou no nível por usuário ( --user
opção pip, padrão no Ubuntu) pip desde 2016), mas não em todo o sistema (nunca sudo pip3
!), porque o pip interfere na operação do gerenciador de pacotes APT e pode afetar os componentes do Ubuntu OS quando um módulo python usado pelo sistema é alterado inesperadamente. Boa sorte!
P. S. Tudo acima é para a solução 'ideal' (maneira Debian / Ubuntu).
Se você ainda deseja usar o novo pip3 v10 exclusivamente, existem três soluções rápidas:
- basta abrir uma nova sessão do bash (uma nova guia ou tipo de terminal
bash
) - e o pip3 v10 fica disponível (consulte pip3 -V
). O pip3 v8 do debian permanece instalado, mas está quebrado; ou
- o comando
$ hash -d pip3 && pip3 -V
para atualizar o nome do caminho pip3 no $ PATH. O pip3 v8 do debian permanece instalado, mas está quebrado; ou
- o comando
$ sudo apt remove python3-pip && hash -d pip3
para desinstalar completamente o pip3 v8 da debian, em favor do seu novo pip3 v10.
Nota: Você sempre precisará adicionar --user
sinalizador a qualquer pip não fornecido pela Debian, a menos que esteja em um virtualenv! (ele implementa pacotes python no ~/.local/
padrão em python3-pip e python-pip fornecidos pelo debian / ubuntu desde 2016). Seu uso do pip 10 em todo o sistema, fora do virtualenv, não é realmente suportado pelo Ubuntu / Debian. Nunca sudo pip3
!
Mais detalhes:
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100