Usando o Pip para instalar pacotes no ambiente Anaconda


177

conda 4.2.13 MacOSX 10.12.1

Estou tentando instalar pacotes de pippara um ambiente novo (virtual) criado usando o anaconda. Nos documentos da Anaconda , diz que isso está perfeitamente bem. É feito da mesma maneira que para virtualenv.

Ative o ambiente em que deseja colocar o programa e, em seguida, instale um programa ...

Eu criei um ambiente vazio em Ananconda assim:

conda create -n shrink_venv

Ative:

source activate shrink_venv

Então eu posso ver no terminal que estou trabalhando em meu ambiente (shrink_venv). Problema está chegando, quando tento instalar um pacote usando pip:

(shrink_venv): pip install Pillow

Requirement already satisfied (use --upgrade to upgrade): Pillow in /Library/Python/2.7/site-packages

Então eu posso ver que ele acha que o requisito foi atendido no pacote de todo o sistema. Parece que o ambiente não está funcionando corretamente, definitivamente não é o que foi dito nos documentos. Estou fazendo algo errado aqui?

Apenas uma observação, eu sei que você pode usar conda installpara os pacotes, mas eu tive um problema com o Pillow do anaconda, então eu queria obtê-lo pipe, uma vez que os documentos dizem que está bem.

Saída de which -a pip:

/usr/local/bin/pip
/Users/my_user/anaconda/bin/pip

** UPDATE ** Vejo que esse é um problema bastante comum. O que eu descobri é que o cond cond não joga bem com o PYTHONPATH. O sistema parece sempre procurar nos locais PYTHONPATH, mesmo quando você estiver usando um ambiente conda. Agora, eu sempre corro unset PYTHONPATHao usar um ambiente conda, e funciona muito melhor. Eu estou no mac.


9
Você tentou um conda install pip?
languitar

4
você pode adicionar a saída de which -a pipsua pergunta, por favor?
cel

1
Você tem um PYTHONPATHconjunto de variáveis ​​de ambiente?
precisa saber é o seguinte

1
teve um problema semelhante. Usar explicitamente o pip que faz parte do Anaconda parecia funcionar para mim.
Arsene Lupin

1
é realmente seguro instalar coisas usando pip e conda? Eu pensei que você poderia entrar em problemas, como não saber qual versão corrigir a desinstalação ...
Charlie Parker

Respostas:


201

Para outras pessoas que se deparam com essa situação, achei a solução mais direta:

  1. Execute conda create -n venv_namee source activate venv_name, onde venv_nameé o nome do seu ambiente virtual.

  2. Corra conda install pip. Isso instalará o pip no seu diretório venv.

  3. Encontre o diretório anaconda e localize a pasta venv real. Deve estar em algum lugar como /anaconda/envs/venv_name/.

  4. Instale novos pacotes fazendo /anaconda/envs/venv_name/bin/pip install package_name.

Agora, você deve instalar com êxito os pacotes usando o pip desse ambiente virtual!


2
O caminho para a binpasta mudou? Já não o vejo na venv_namepasta?
Jack

Apenas tentei criar um novo venv, parece que binainda está no mesmo lugar.
Windmill

2
Não tinha a pasta 'bin', portanto, as etapas acima ajudaram. Uma coisa que eu gostaria de acrescentar está em execução 'que pip' ajuda a determinar qual o 'pip' é realmente a instalação de pacotes e 'congelar pip' dá a lista de instalado nos pacotes ambiente
Mykola

2
Tenho uma situação em que, embora minha fonte esteja ativada, minhas instalações não estão acontecendo no ambiente. Eles são instalados no local padrão do python.
Saisumanth Gopisetty 13/03/19

4
Esta resposta é, em grande parte: Executar pipa partir do seu env Conda (se é o ambiente ou não), e instalar o pacote que você deseja usar o pipexecutável dentro da pasta Conda (meu caso: AppData\Local\Continuum\anaconda3\Scripts)
Manuel Martinez

80

Tudo o que você precisa fazer é abrir o Anaconda Prompt e digitar

pip install package-name

Ele será instalado automaticamente no ambiente anaconda sem precisar usar

conda install package-name

Como alguns dos pacotes conda podem não ter suporte a horas extras, é necessário instalar usando o pip e essa é uma maneira de fazê-lo

Se você possui o pip instalado no anaconda, pode executar o seguinte no notebook jupyter ou no shell python vinculado ao anaconda

pip.main(['install', 'package-name'])

Verifique sua versão do pip com pip.__version__. Se for a versão 10.x.xou superior, instale seu pacote python com esta linha de código

subprocess.check_call([sys.executable, '-m', 'pip', 'install', '--upgrade', 'package-name'])

No seu notebook jupyter, você pode instalar pacotes python através do pip em uma célula dessa maneira;

!pip install package-name

ou você pode usar sua versão python associada ao anaconda

!python3.6 -m pip install package-name

6
como você "abre o prompt do Anaconda"
Thomas Browne

3
No Windows, você tem que procurar por 'anaconda prompt de' usando o ícone de pesquisa ou entrada encontrada na barra de tarefas e aberto
sambeth

@sambeth no mac?
Parthapratim Neog 02/12/19

1
Eu acho que a chave é executar o pip da sua anaconda, que fica no ambiente global ou específico da sua anaconda.
matanster

2
Esta resposta está incorreta. O ponto principal da questão é que, às vezes, não é instalado no ambiente. Ele instala globalmente. Para evitar isso, é necessário primeiro executar conda install pipdentro do ambiente para garantir que você esteja usando uma versão local do pip.
peastman

33

Resolvi esse problema da seguinte maneira:

Se você tem um pip não-conda como seu padrão, mas o conda python é o seu python padrão (como abaixo)

>which -a pip
/home/<user>/.local/bin/pip   
/home/<user>/.conda/envs/newenv/bin/pip
/usr/bin/pip

>which -a python
/home/<user>/.conda/envs/newenv/bin/python
/usr/bin/python

Em vez de apenas chamar pip install <package>, você pode usar o sinalizador de módulo -mcom python para que ele use o anaconda python para a instalação

python -m pip install <package>

Isso instala o pacote no diretório da biblioteca anaconda, em vez do diretório da biblioteca associado ao pip (não anaconda)


3
Essa deve ser a resposta. Funciona perfeitamente no Windows.
Geordie

9

Se você não adicionou pip ao criar ambiente conda

conda create -n env_name pip

e também não instalou pip dentro do ambiente

source activate env_name
conda install pip

o único pip que você obteve é ​​o pip do sistema, que instalará os pacotes globalmente.

No barramento, como você pode ver nesta edição , mesmo se você executou um dos procedimentos mencionados acima, o comportamento do pip dentro do ambiente conda ainda é indefinido.

Para garantir o uso do pip instalado dentro do ambiente conda sem precisar digitar o longo /home/username/anaconda/envs/env_name/bin/pip, escrevi uma função shell:

# Using pip to install packages inside conda environments.
cpip() {
    ERROR_MSG="Not in a conda environment."
    ERROR_MSG="$ERROR_MSG\nUse \`source activate ENV\`"
    ERROR_MSG="$ERROR_MSG to enter a conda environment."

    [ -z "$CONDA_DEFAULT_ENV" ] && echo "$ERROR_MSG" && return 1

    ERROR_MSG='Pip not installed in current conda environment.'
    ERROR_MSG="$ERROR_MSG\nUse \`conda install pip\`"
    ERROR_MSG="$ERROR_MSG to install pip in current conda environment."

    [ -e "$CONDA_PREFIX/bin/pip" ] || (echo "$ERROR_MSG" && return 2)

    PIP="$CONDA_PREFIX/bin/pip"
    "$PIP" "$@"
}

Espero que este seja útil para você.


8

Isto é o que funcionou para mim (consulte a imagem vinculada)

  1. Anaconda aberto
  2. Selecione Ambientes no painel esquerdo abaixo da página inicial
  3. À direita de onde você selecionou e abaixo da barra "ambientes de pesquisa", você deve ver a base (raiz). Clique nisso
  4. Um triângulo apontando para a direita deve aparecer, clique nele e selecione "abrir terminal"
  5. Use o comando regular pip install aqui. Não há necessidade de apontar para um ambiente / caminho

Para referência futura, você pode encontrar a pasta para a qual seus pacotes estão baixando, se um requisito já estiver satisfeito. Você pode vê-lo se rolar para cima no terminal. Deve ler algo como: requisito já satisfeito e, em seguida, o caminho

[ pip instalar anaconda]


3

Para aqueles que desejam instalar um pequeno número de pacotes no conda com o pip e usando,

sudo $(which pip) install <instert_package_name>

trabalhou para mim.

Explicação

Parece, para mim, que which pipé muito confiável para encontrar o caminho do conda env pip para onde você está. No entanto, ao usar sudo, isso parece redirecionar caminhos ou interromper isso.

O uso de $(which pip)executa isso independentemente de sudoqualquer um dos comandos e é semelhante à execução /home/<username>/(mini)conda(3)/envs/<env_name>/pipno Linux. Isso ocorre porque $()é executado separadamente e a saída de texto é adicionada ao comando externo.


3

Todas as respostas acima são baseadas principalmente no uso do virtualenv. Eu apenas tenho uma nova instalação do anaconda3 e não tenho nenhum virtualenv instalado. Então, eu encontrei uma alternativa melhor para isso sem pensar em criar virtualenv.

Se você possui muitas versões de pip e python instaladas no linux, execute primeiro o comando abaixo para listar todos os caminhos de pip instalados.

whereis pip

Você obterá algo assim como saída.

pip: / usr / bin / pip /home/prabhakar/anaconda3/bin/pip/usr/share/man/man1/pip.1.gz

Copie o caminho do pip que você deseja usar para instalar o seu pacote e cole-o após o sudo substituir /home/prabhakar/anaconda3/bin/pipno comando abaixo.

/home/prabhakar/anaconda3/bin/pipinstalação do sudo<package-name>

Isso funcionou muito bem para mim. Se você tiver algum problema na instalação, por favor, comente.


3

se você estiver usando o sistema operacional Windows, abra o Anaconda Prompt e digiteactivate yourenvname

E se você estiver usando um sistema operacional Mac ou Linux, abra o Terminal e digitesource activate yourenvname

yourenvname Aqui está o ambiente desejado no qual você deseja instalar o pacote pip

depois de digitar o comando acima, você deve ver que o nome do seu ambiente foi alterado basepara o ambiente digitado yourenvnamena saída do console (o que significa que agora você está no contexto de ambiente desejado)

Então tudo que você precisa fazer é o pip installcomando normal, por exemplopip install yourpackage

Ao fazer isso, o pacote pip será instalado no seu ambiente Conda


3

python -m pip install Pillow

Usará o pip do Python atual ativado com

source activate shrink_venv


3

Depende de como você configurou sua variável de ambiente PATH. Quando o seu shell resolve a chamada para o pip, qual é o primeiro bin que ele encontrará?

(test)$ whereis pip
pip: /home/borja/anaconda3/envs/test/bin/pip /home/borja/anaconda3/bin/pip

Certifique-se de que a pasta bin da instalação do anaconda esteja antes de / usr / lib (dependendo de como você instalou o pip). Então, um exemplo:

(test) borja@xxxx:~$ pip install djangorestframework
....
Successfully installed asgiref-3.2.3 django-3.0.3 djangorestframework-3.11.0 pytz-2019.3 sqlparse-0.3.1

(test) borja@xxxx:~$ conda list | grep django
django                    3.0.3                    pypi_0    pypi
djangorestframework       3.11.0                   pypi_0    pypi

Podemos ver que o djangorestframework foi instalado no meu ambiente de teste, mas se eu verificar minha base:

(base) borja@xxxx:~$ conda list | grep django

Ele está vazio.

Pessoalmente, gosto de lidar com toda a minha configuração PATH usando .pam_environment , aqui está um exemplo:

(base) borja@xxxx:~$ cat .pam_environment
PATH DEFAULT=/home/@{PAM_USER}/anaconda3/bin:${PATH}

Um cometa extra. A maneira como você instala o pip pode criar problemas:

  • Você deve usar: conda install pip -> novos pacotes instalados com o pip serão adicionados à lista conda.

  • Você NÃO deve usar: sudo apt install python3-pip -> novos pacotes não serão adicionados à lista conda (portanto, não são gerenciados pelo conda), mas você ainda poderá usá-los (chance de conflito).


Um cometa extra. A maneira como você instala o pip pode criar problemas: - Você deve usar: conda install pip -> novos pacotes instalados com o pip serão adicionados à lista conda. - Você não deve usar: sudo apt install python3-pip -> novos pacotes não serão adicionados à lista conda (portanto, não serão gerenciados), mas você ainda poderá usá-los (chance de conflito).
BorjaEst 16/03

oi pessoal :) Como posso remover uma pasta bin como /usr/libno caso de estar antes da minha pasta bin anaconda quando estiver em execução whereis pip?
Lenn

Tente sudo apt remove python3-pipremover pip de sua distribuição Linux e, em seguida, no ambiente Conda está a utilizar: conda install -c anaconda pip.
BorjaEst

2

Eu estava enfrentando um problema ao instalar um pacote não conda no anaconda, segui a resposta mais apreciada aqui e ela não correu bem (talvez porque o meu anaconda esteja no diretório F e o env criado esteja no C e a pasta bin não tenha sido criada, Não faço ideia, mas não funcionou).

De acordo com o anaconda, o pip já está instalado (o qual é encontrado usando o comando " conda list" no prompt do anaconda), mas os pacotes do pip não estavam sendo instalados, e aqui está o que eu fiz: instalei o pip novamente e o pip instalou o pacote.

conda install pip
pip install see

see é um pacote não conda.


2

Bem, eu tentei todos os métodos acima. Nenhum funcionou para mim. O seguinte funcionou para mim:

  1. Ative seu ambiente
  2. Faça o download do pacote .whl manualmente em https://pypi.org/simple/ /
  3. Navegue até a pasta em que você baixou o .whl na linha de comando com o ambiente ativado
  4. execute: instalação do pip package_name_whatever.whl

1

Se você SOMENTE deseja ter uma instalação conda. Apenas remova todos os outros caminhos python da sua variável PATH.

Partindo apenas:

C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\Library\bin

Isso permite que você use pip install *e ele será instalado diretamente na sua instalação conda.


-1

Apenas activate shrink_venvvai fazer também. Tentei criar um novo ambiente e minha instalação do conda não me permite usar a fonte no começo.


Você não precisa de sourceno início se você estiver no Windows
KWx
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.