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-pippacote 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 pipcomando de trabalho (já no $ PATH), além da boa --useropçã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 aptdetalhes):
$ 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 --useropçã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 --usermódulos por usuário instalados sob medida (com pip ) por usuário ~/.local/libtambé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 pip3direciona o mesmo /usr/lib/python3/dist-packagesdiretó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 apte não devem ser alterados.
Portanto, se você usar o pip3 installcomando, 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 ( --useropçã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 pip3para desinstalar completamente o pip3 v8 da debian, em favor do seu novo pip3 v10.
Nota: Você sempre precisará adicionar --usersinalizador 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