A diferença entre conda install e pip install.Comparação de funções, etc. [Python]

2019 ano 5 mês 26 dia

Até agora, o pip install só era reconhecido como um substituto quando o conda install não estava disponível.Se o pacote que eu queria não estava no repositório Anaconda, instalei-o com pip, e em um ponto o ambiente foi corrompido devido a esses conflitos.

O ambiente do Anaconda foi corrompido quando pensei que o Notebook Jupyter não iria iniciar

Por se tratar de uma grande oportunidade, investiguei a diferença entre pip e conda, por isso vou deixar como memorando a seguir.

Diferença entre conda e pip

O que é Conda

Em suma, é um gerenciador de pacotes que vem como padrão com o Anaconda / Miniconda e é um sistema de gerenciamento ambiental.

Anaconda é uma plataforma que fornece pacotes para ciência de dados (se você está vindo para descobrir a diferença entre conda e pip, você já sabe). Você pode instalar linguagens de programação para ciência de dados, como Python e R, e pacotes necessários para análise estatística e aprendizado de máquina de uma só vez, e pode criar imediatamente um ambiente que usa Python.
Também existe um Miniconda que possui a configuração mínima.

O conda só funciona quando instalado pelo instalador Anaconda ou pelo instalador miniconda. Mesmo se você instalar o conda no ambiente de python + pip, você não pode usá-lo como na distribuição do Anaconda.

O que é pip

Um instalador de pacote Python padrão e sistema de gerenciamento de pacote que vem com a instalação de Python puro.

Ele baixa e instala pacotes do Python Package Index (PyPI), um repositório para linguagens de programação Python.

Diferenças em cada função

As funções de conda e pip são resumidas em uma tabela simples.

Funçãomunicípiopip
Instalação e gerenciamento de pacotes
Mudar de versão PythonNão é possível (substitua por pipenv, pyenv)
Gestão de ambiente virtualNão é possível (substitua por pipenv, virtualenv, venv)

Como conda também é um sistema de gerenciamento de ambiente, você pode construir um ambiente virtual, mudar a versão do Python para 3.7 ou mudar para 2.7.

Com o pip, você instalará e usará pacotes como pyenv (controle de versão) e venv (gerenciamento de ambiente virtual).

Recentemente, pipenv foi lançado e parece que tem uma função que quase pode substituir o conda.

instalação conda e instalação pip

Os comandos para conda install e pip install são semelhantes, mas o mecanismo de instalação de pacotes parece ser bem diferente. Há uma tabela de comparação fácil de entender no site anaconda.com, então vou citá-la (em japonês e modificada para facilitar meu entendimento).

conda instalarinstalação de pip
Formato do pacotebinárioroda ou fonte
compilar不要必要
Tipo de embalagemOutros idiomas também são possíveisapenas python
Gerenciamento de ambiente virtual, gerenciamento de versãoPossívelNão é possível (substituir virtualenv, venv)
Verificação de dependênciaSimNenhum
Fonte de download do pacoterepositório anaconda, nuvem anacondaPyPlName

・ Conda oferece suporte a outras linguagens além de python

Anaconda / Miniconda é uma plataforma cruzada que permite instalar várias linguagens de programação, como Python, R, Ruby, Java, JavaScript, C / C ++, FORTRAN e seus pacotes.

O conda pode instalar pacotes de software escritos em vários idiomas em sua plataforma cruzada.

pip só pode ser instalado em pacotes Python.

-Se a compilação é necessária

Mais de 1000 pacotes que podem ser instalados com o comando conda são armazenados em um repositório dedicado chamado nuvem Anaconda.

Como esses pacotes são arquivos binários compilados, eles podem ser baixados e instalados sem a necessidade de um compilador.

Os arquivos que você instala com o pip contêm os arquivos de origem, que você precisará compilar no lado do cliente.

Isso pode causar problemas dependendo do ambiente e parece ser uma das causas que muitas vezes tropeça ao construir um ambiente.pode ser.Pode exigir dependências externas.

・ Se há verificação de dependência ou não

Parece que o pip não garante que todas as dependências sejam satisfeitas ao mesmo tempo cada vez que um pacote é instalado.Nesse caso, ocorrerão conflitos se os pacotes instalados tiverem versões diferentes dos pacotes dos quais dependem.

O conda suporta isso fornecendo um solucionador SAT que coleta metadados para todos os pacotes para entender as dependências.Ao instalar, compreenda rapidamente as dependências complexas entre os pacotes e execute as atualizações e instalações apropriadas.

・ Diferença na velocidade de execução

Também houve informação de que as operações matriciais com numpy instalado com conda são mais rápidas.Depende do tipo de cálculo, mas parece que a diferença é mais do que o dobro.

Existem vários métodos de implementação para BLAS (Basic Linear Algebra Subprograms) que realmente manipulam as operações de matriz chamadas por NumPy, e um deles é o Intel MKL (Math Kernel Library) desenvolvido pela Intel.).Na verdade, BLAS chamado de NumPy instalado por Anaconda é MKL, mas quando NumPy é instalado com pip, BLAS chamado OpenBLAS é normalmente usado, então existe a possibilidade de que haja uma diferença de desempenho aqui.

Diferença na velocidade do NumPy entre o NumPy do Anaconda e pip-Orizuru

BLAS é uma biblioteca que realiza cálculos básicos de matrizes e vetores. Há mais formigas vivas na biblioteca entorpecida e não tenho certeza ...

"O quanto a velocidade de processamento do cálculo realmente muda dependendo da diferença no BLAS" e "Como descobrir qual BLAS é usado em seu ambiente" estão resumidos em detalhes nas páginas a seguir.Por favor, refira-se se quiser.

Parece que a velocidade do cálculo muda dependendo do BLAS usado para Numpy [Python]

Essa é a diferença entre conda e pip.

参照


Compreendendo Conda e Pip
https://conda.io/en/latest/
Compare as velocidades do NumPy do Anaconda e do NumPy do PyPI
Pare de instalar o Tensorflow usando pip para melhorar o desempenho!