Instalei e uso a distribuição Anaconda Python e comecei a usar o ambiente Anaconda (Conda). Posso usar o conda install...
comando padrão para colocar pacotes da distribuição em meus ambientes, mas para usar qualquer coisa externa (ex .: Flask-WTF, flask-sqlalchemy e alembic) que preciso usar pip install
no ambiente ativo. No entanto, quando olho o conteúdo do ambiente, no diretório ou no uso conda list
desses pip install
pacotes de edição não aparece.
Usando pip freeze
e pip list
apenas lista todos os pacotes que já instalei.
Existe uma maneira de acompanhar o que está em cada um dos meus Anaconda env
s (ambos pip
e conda
instalados)?
pip
instalado comconda
, por exemplo~/anaconda/bin/pip
. Use-o para instalar pacotes em umconda
ambiente, bem como para ver a união de pacotes instalados com issopip
e comconda install
.conda list
tem por um tempo agora incluído pacotes Python que foram instalados por outros meios (por exemplo, pip, fácil de instalar, diretamente compython setup.py install
, etc etc)Respostas:
O conda-env agora faz isso automaticamente (se o pip foi instalado com o conda).
Você pode ver como isso funciona usando a ferramenta de exportação usada para migrar um ambiente:
O arquivo listará os pacotes conda e pip:
Se você deseja continuar exportando o ambiente, vá
environment.yml
para a nova máquina host e execute:fonte
conda
apenas acompanhará os pacotes instalados. Epip
fornecerá os pacotes que foram instalados usando opip
próprio instalador ou que eles usaramsetuptools
em suasetup.py
compilação então o conda gerou as informações do ovo. Então você tem basicamente três opções.Você pode tomar a união do
conda list
epip freeze
e gerenciar pacotes que foram instalados utilizandoconda
(que mostra noconda list
) com oconda
gerenciador de pacotes e os que são instalados compip
(que show empip freeze
, mas não emconda list
) compip
.Instalar apenas no seu ambiente
python
,pip
edistribute
pacotes e gerenciar tudo compip
. (Isso não é tão trivial se você estiver no Windows ...)Crie seus próprios
conda
pacotes e gerencie tudo comconda
.Eu recomendaria pessoalmente a terceira opção, pois é muito fácil criar
conda
pacotes. Há um repositório git de receitas de exemplo na conta github do continuum. Mas geralmente se resume a:ou apenas:
Além disso, quando você os tiver criado uma vez, poderá enviá-los para https://binstar.org/ e apenas instalar a partir daí.
Então você terá tudo gerenciado usando
conda
.fonte
~/anaconda/bin/pip install memory-profiler
econda install numba
, e ambos são mostrados em~/anaconda/bin/pip freeze
.conda install C:\...PACKAGE-0.0.0-py27_0.tar.bz2
o descrito em stackoverflow.com/a/20750388/125507conda install python=3.x.y
no seu ambiente conda, de forma que as instalações subsequentes do pip passam pelo pip instalado do conda.Há um ramo da conda (new-pypi-install) que adiciona melhor integração com o pip e o PyPI. Em particular, a lista conda também mostrará os pacotes instalados pelo pip e a instalação do conda tentará primeiro encontrar um pacote conda e a falha que usará o pip para instalar o pacote.
Esse ramo está programado para ser mesclado ainda esta semana, para que a versão 2.1 do conda tenha uma melhor integração de pip com o conda.
fonte
conda install package
e não encontrar uma receita conda, ele tentará instalá-la viapip
(e depois acompanhará). Sugere até a instalação,pip
se não no seu ambiente. Obrigado Travis por todo o seu trabalho!conda install autopep8
ele diz "Nenhum pacote encontrado" e que eu deveria procurar no anaconda.org manualmente.running pip...
também não funciona, ele não procurará o pacote conda.Segui a resposta de @Viktor Kerkez e tive sucesso misto. Eu descobri que algumas vezes essa receita de
parece que tudo funcionou, mas não foi possível importar o PACKAGE com êxito. Recentemente, perguntei sobre isso no grupo de usuários do Anaconda e ouvi do próprio @Travis Oliphant a melhor maneira de usar o conda para criar e gerenciar pacotes que não são fornecidos com o Anaconda. Você pode ler este tópico aqui , mas descreverei a abordagem abaixo para, esperançosamente, tornar as respostas à pergunta do OP mais completas ...
Exemplo: instalarei o excelente pacote prettyplotlib no Windows usando o conda 2.2.5.
1a)
conda build --build-recipe prettyplotlib
Você verá todas as mensagens de compilação até a seção TESTE final da compilação. Eu vi esse erro
1b) Acesse / conda-recipes / prettyplotlib e edite o arquivo meta.yaml. Atualmente, os pacotes configurados como na etapa 1a resultam em arquivos yaml que apresentam um erro na
test
seção. Por exemplo, aqui está como o meu procuravaprettyplotlib
Edite esta seção para remover a linha em branco precedida pelo - e também remova a linha prettyplotlib redundante. No momento em que escrevi este artigo, descobri que precisava editar a maioria dos arquivos meta.yaml como este para pacotes externos que estou instalando com o conda, o que significa que há uma linha de importação em branco causando o erro e uma importação redundante do pacote fornecido .
1c) Execute novamente o comando 1a, que deve ser concluído sem erros desta vez. No final da compilação, você será perguntado se deseja fazer o upload da compilação no binstar . Digitei No e depois vi esta mensagem:
Esse arquivo tar.bz2 é a compilação que você precisa instalar agora.
2)
conda install C:\Anaconda\conda-bld\win-64\prettyplotlib-0.1.3-py27_0.tar.bz2
Seguindo essas etapas, usei com êxito o conda para instalar vários pacotes que não acompanham o Anaconda. Anteriormente, eu havia instalado alguns deles usando o pip, assim como
pip uninstall PACKAGE
antes de instalar o PACKAGE com conda. Usando conda, agora posso gerenciar (quase) todos os meus pacotes com uma única abordagem, em vez de ter uma mistura de coisas instaladas com a instalação conda, pip, easy_install e python setup.py.Por contexto, acho que este post recente do @Travis Oliphant será útil para pessoas como eu que não apreciam tudo o que existe em embalagens robustas em Python, mas certamente apreciam quando as coisas "simplesmente funcionam". conda parece ser um ótimo caminho a seguir ...
fonte
Foi por isso que escrevi Picky: http://picky.readthedocs.io/
É um pacote python que rastreia os pacotes instalados com pip ou conda em ambientes virtualenvs e conda.
fonte
Eu acho que o que falta aqui é que quando você faz:
para instalar um pacote local com um setup.py, ele instala um pacote que é visível para todos os envs do condda que usam a mesma versão do python. Note que estou usando a versão conda do pip!
por exemplo, se estou usando python2.7, coloca o pacote local aqui:
/usr/local/anaconda/lib/python2.7/site-packages
Se, posteriormente, criar um novo ambiente conda com python = 2.7 (= o padrão):
E então faça:
No entanto, se eu fizer:
Portanto, neste caso, o conda não conhece o pacote pip, mas o pacote está disponível para python.
No entanto, se eu instalar o pacote local (novamente usando pip) depois de criar (e ativar) o novo conda env, agora o conda o vê:
Então, acho que a interação entre conda e pip tem alguns problemas - ou seja, o uso do pip para instalar um pacote local a partir de um ambiente conda torna esse pacote disponível (mas não visto na lista conda) para todos os outros ambientes da mesma versão python.
fonte
conda env export
lista todos os pacotes conda e pip em um ambiente.conda-env
deve ser instalado na raiz conda (conda install -c conda conda-env
).Para escrever um
environment.yml
arquivo descrevendo o ambiente atual:Referências:
fonte
Normalmente prefixo a pasta 'bin / pip' para o ambiente específico em que você deseja instalar o pacote antes do comando 'pip'. Por exemplo, se você deseja instalar o pymc3 no ambiente py34, use este comando:
Basicamente, você só precisa encontrar o caminho certo para a pasta 'bin / pip' do seu ambiente e colocá-lo antes do comando de instalação.
fonte
My
which pip
mostra o seguinte caminho:Portanto, qualquer pacote que eu instale usando
pip install <package-name>
terá que ser refletido na lista de pacotes quando a lista for exportada usando:Mas eu não. Então, em vez disso, usei o seguinte comando, conforme sugerido por vários outros:
Agora, posso ver todos os pacotes no meu
all-packages.yml
arquivo.fonte
Você pode começar instalando o comando abaixo fornecido no ambiente conda:
conda install pip
Seguido pela instalação de todos os pacotes de pip necessários no ambiente.
Após instalar todos os pacotes conda e pip para exportar o ambiente, use:
conda env export -n <env-name> > environment.yml
Isso criará o arquivo necessário na pasta
fonte