Instalei o Anaconda (com Python 2.7) e instalei o Tensorflow em um ambiente chamado tensorflow
. Eu posso importar o Tensorflow com sucesso nesse ambiente.
O problema é que o Jupyter Notebook não reconhece o novo ambiente que acabei de criar. Não importa que eu inicie o Jupyter Notebook no GUI Navigator ou na linha de comando dentro do ambiente tensorflow
, existe apenas um kernel no menu chamado Python [Root]
e o Tensorflow não pode ser importado. Obviamente, cliquei nessa opção várias vezes, salvei o arquivo, reabri-o, mas isso não ajudou.
Estranhamente, posso ver os dois ambientes quando abro a Conda
guia na primeira página do Jupyter. Mas quando abro a Files
guia e tento para new
um notebook, ainda acabo com apenas um kernel.
Eu olhei para esta pergunta:
Vincule o ambiente Conda ao Jupyter Notebook
Mas não existe um diretório como o ~/Library/Jupyter/kernels
meu computador! Este diretório Jupyter possui apenas um subdiretório chamado runtime
.
Estou realmente confuso. Os ambientes Conda devem se tornar kernels automaticamente? (Segui https://ipython.readthedocs.io/en/stable/install/kernel_install.html para configurar manualmente os kernels, mas foi informado que ipykernel
não foi encontrado.)
fonte
conda install ipykernel
nesse ambiente.conda install ipykernel
parece instalarjupyter
no ambiente ... Estou perdendo alguma coisa?nb_conda
for usado ou se o kernel estiver configurado manualmente, conforme sugerido na pergunta. Caso contrário, ele realmente estragará bastante as coisas. O executáveljupyter
apontará para um executável dentro do ambiente, mas o sistemajupyter-notebook
será iniciado (se instalado) e, portanto, não usará o ambiente com o kernel padrão.Respostas:
Eu não acho que as outras respostas estejam funcionando mais, pois o conda parou de configurar automaticamente os ambientes como kernels jupyter. Você precisa adicionar manualmente os kernels para cada ambiente da seguinte maneira:
Conforme documentado aqui: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments Consulte também este problema .
Adendo: você deve poder instalar o
nb_conda_kernels
pacoteconda install nb_conda_kernels
para adicionar todos os ambientes automaticamente, consulte https://github.com/Anaconda-Platform/nb_conda_kernelsfonte
nb_conda_kernels
trabalhou para mim a partir de abril 2018 (Python 3.6.4
,conda 4.3.27
,jupyter 4.4.0
).conda install ipykernel
esta resposta assume que você já o possui instalado em seu ambiente.Se seus ambientes não estão aparecendo, você provavelmente não tem
nb_conda_kernels
instalado no ambiente em que o Jupyter está instalado. A documentação da Anaconda afirma queObserve que no momento em que publicamos isso originalmente, havia uma causa possível por
nb_conda
ainda não oferecer suporte a ambientes Python 3.6 .Se outras soluções falharem no Jupyter para reconhecer outros ambientes conda, você sempre poderá instalar e executar a
jupyter
partir de um ambiente específico. Talvez você não consiga ver ou alternar para outros ambientes a partir do Jupyter.Observe que estou executando o Python 3.6.1 neste notebook:
Observe que, se você fizer isso com muitos ambientes, o espaço de armazenamento adicional da instalação do Jupyter em todos os ambientes poderá ser indesejável (dependendo do seu sistema).
fonte
nb_conda
O objetivo é apenas "[fornecer] o ambiente Conda e a extensão de acesso ao pacote a partir do Jupyter", para que você não possa executar o Jupyter a partir da instalação python escolhida.ipykernel
precisa ser instalado em cada ambiente que você deseja usar como kernel.O irritante é que, no seu
tensorflow
ambiente, você pode executarjupyter notebook
sem instalarjupyter
nesse ambiente . Apenas corrae o
tensorflow
ambiente agora deve estar visível nos Jupyter Notebooks iniciados em qualquer um de seusconda
ambientes como algo parecidoPython [conda env:tensorflow]
.fonte
conda install nb_conda
em um dos ambientes conda de origem (com o notebook jupyter instalado). Em seguida, você pode alternar os envios de kernels / conda no navegador de notebooks jupyter.ipykernel
(que é a única coisa realmente necessária), é uma dependência dejupyter
.Eu tive que executar todos os comandos mencionados nas 3 principais respostas para que isso funcionasse:
fonte
conda install nb_conda
jupyter lab
dentro daquele ambiente específicoBasta executar
conda install ipykernel
em seu novo ambiente, somente então você obterá um kernel com este ambiente. Isso funciona mesmo se você tiver versões diferentes instaladas em cada envs e não instalar o notebook jupyter novamente. Você pode iniciar o seu notebook a partir de qualquer ambiente em que possa ver os kernels adicionados recentemente.fonte
conda install ipykernel
dentro do seu ambiente conda. Na pior das hipóteses, você pode usarpython -m ipykernel install --user --name mykernel
para gerar manualmente o kernel, mas não o faria se ele já for descoberto automaticamente ou ele será exibido duas vezes na lista de kernel.Resumo (tldr)
Se você deseja que o kernel 'python3' sempre execute a instalação do Python no ambiente em que é iniciado, exclua o kernel do usuário 'python3', que tem precedência sobre qualquer que seja o ambiente atual:
Solução completa
Vou postar uma solução alternativa e mais simples para o seguinte caso:
jupyter notebook
e cria um novo bloco de notas clicando em 'python3' no menu suspenso 'Novo', esse bloco de notas executa o python no ambiente base e não no ambiente atual.Vou usar o nome 'test_env' para o ambiente pelo restante da solução. Além disso, observe que 'python3' é o nome do kernel.
A resposta atualmente mais votada funciona, mas há uma alternativa. Ele diz para fazer o seguinte:
Isso lhe dará a opção de usar o ambiente test_env, independentemente de qual ambiente você iniciar
jupyter notebook
. Porém, o lançamento de um notebook com 'python3' ainda utilizará a instalação do Python a partir do ambiente base.O que provavelmente está acontecendo é que existe um kernel python3 do usuário. Execute o comando
jupyter kernelspec list
para listar todos os seus ambientes. Por exemplo, se você tiver um Mac, você receberá o seguinte (meu nome de usuário é Ted).O que Jupyter está fazendo aqui é pesquisar três caminhos diferentes, procurando kernels. Vai de Usuário , para Env , para Sistema . Consulte este documento para obter mais detalhes sobre os caminhos que ele procura para cada sistema operacional.
Os dois kernels acima estão no caminho do usuário, o que significa que estarão disponíveis independentemente do ambiente em que você iniciar um notebook jupyter. Isso também significa que, se houver outro kernel 'python3' no nível do ambiente, você nunca poderá acessá-lo.
Para mim, faz mais sentido que escolher o kernel 'python3' no ambiente em que você lançou o notebook execute o Python nesse ambiente.
Você pode verificar se possui outro ambiente 'python3' procurando no caminho de pesquisa Env do seu sistema operacional (consulte o link para os documentos acima). Para mim (no meu mac), emiti o seguinte comando:
E eu realmente tinha um kernel 'python3' listado lá.
Graças a este comentário de problema do GitHub (observe a primeira resposta), você pode remover o ambiente 'python3' do usuário com o seguinte comando:
Agora, quando você executa
jupyter kernelspec list
, assumindo que o test_env ainda esteja ativo, você obtém o seguinte:Observe que esse caminho está localizado no diretório test_env. Se você criar um novo ambiente, instalar o jupyter, ativá-lo e listar os kernels, obterá outro kernel 'python3' localizado no caminho do ambiente.
O kernel do usuário 'python3' estava tendo precedência sobre qualquer um dos kernels Env 'python3'. Ao removê-lo, o kernel 'python3' do ambiente ativo foi exposto e pode ser escolhido sempre. Isso elimina a necessidade de criar manualmente os kernels. Também faz mais sentido em termos de desenvolvimento de software, onde se deseja isolar-se em um único ambiente. A execução de um kernel diferente do ambiente host não parece natural.
Parece também que este usuário 'python3' não está instalado para todos por padrão; portanto, nem todos são confrontados com esse problema.
fonte
(no ambiente conda em que você executa o notebook jupyter) disponibilizará todos os envs do conda automaticamente. Para acessar outros ambientes, os respectivos kernels devem ser instalados. Aqui está a ref .
fonte
Temos muita dificuldade com esse problema, e aqui está o que funciona para nós. Se você usa o canal conda-forge , é importante verificar se você está usando pacotes atualizados
conda-forge
, mesmo em seuMiniconda
ambiente raiz.Instale o Miniconda e faça:
e seu ambiente personalizado será exibido no Jupyter como um kernel disponível, desde que
ipykernel
listado para instalação no seucustom_env.yml
arquivo, como neste exemplo:Apenas para provar que ele funciona com vários ambientes personalizados, aqui está uma captura de tela do Windows:
fonte
o
nb_conda_kernels
pacote é a melhor maneira de usarjupyter
comconda
. Com dependências e configurações mínimas, permite usar outros ambientes conda de um notebook jupyter em execução em um ambiente diferente. Citando sua documentação :Então, tudo o que você precisa fazer é iniciar o servidor de notebook jupyter:
Apesar da infinidade de respostas e dos esforços da @ merv para melhorá-las, ainda é difícil encontrar uma boa. Eu fiz este CW, então vote no topo ou melhore!
fonte
Corri para o mesmo problema em que meu novo ambiente conda
myenv
não podia ser selecionado como um kernel ou um novo notebook. E correndojupter notebook
de dentro do ambiente deu o mesmo resultado.Minha solução e o que aprendi sobre como os notebooks Jupyter reconhecem condda-envs e kernels:
Instalando jupyter e ipython no
myenv
conda:Depois disso, executando
jupter notebook
fora de qualquer ambiente listadomyenv
como um kernel junto com meus ambientes anteriores.Executando o notebook uma vez que eu ativei o ambiente:
oculta todos os meus outros kernels de ambiente e mostra apenas meus kernels de idioma:
fonte
Isso funcionou para mim no Windows 10 e na solução mais recente:
1) Entre nesse ambiente conda (ative seu_env_name)
2) instalação conda -n your_env_name ipykernel
3) instalação do python -m ipykernel --user --name build_central --display-name "your_env_name"
(OBSERVAÇÃO: inclua aspas em "your_env_name", na etapa 3)
fonte
Isso foi tão frustrante que meu problema era que, em um ambiente recém-construído do condda python36, o jupyter se recusou a carregar “seaborn” - mesmo que o seaborn tenha sido instalado nesse ambiente. Parecia poder importar muitos outros arquivos do mesmo ambiente - por exemplo, numpy e pandas, mas não apenas no mar. Tentei muitas das correções sugeridas aqui e em outros threads sem êxito. Até eu perceber que o Jupyter não estava executando o kernel python dentro desse ambiente, mas executando o sistema python como kernel. Mesmo que um kernel com aparência decente e o kernel.json já estivessem presentes no ambiente. Foi somente depois de ler esta parte da documentação do ipython: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments e usar estes comandos:
Consegui fazer tudo correr bem. (Na verdade, eu não usei a variável user).
Uma coisa que ainda não descobri é como definir o python padrão como o "Python (outro env)". Atualmente, um arquivo .ipynb existente aberto na tela inicial usará o python do sistema. Eu tenho que usar o menu Kernel "Alterar kernel" para selecionar o ambiente python.
fonte
Enquanto a resposta do @ coolscitist funcionou para mim, também existe uma maneira de não desorganizar o ambiente do kernel com o pacote jupyter completo + deps. Ele é descrito nos documentos do ipython e é (suspeito) apenas necessário se você executar o servidor notebook em um ambiente não básico.
Você pode verificar se funciona usando
fonte
conda install nb_conda_kernels
funciona melhor.python -m ipykernel install
é a rota tradicional de registrar um env e funciona para outros envs (não pertencentes à Conda). A idéia por trásnb_conda_kernels
disso é que você não precisa fazer isso manualmente, desde que instaleipykernel
.Eu tive um problema semelhante e encontrei uma solução que está funcionando para Mac, Windows e Linux. São necessários poucos ingredientes principais que estão na resposta acima:
Para poder ver conda env no notebook Jupyter, você precisa:
o seguinte pacote em sua base env:
conda install nb_conda
o seguinte pacote em cada ambiente que você cria:
conda install ipykernel
verifique a configuração da
jupyter_notebook_config.py
primeira verificação se você tiver um
jupyter_notebook_config.py
em um dos locais fornecidos porjupyter --paths
se ele não existir, crie-o executando
jupyter notebook --generate-config
add ou verifique se você possui o seguinte:
c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'
O ambiente que você pode ver no seu terminal:
No Jupyter Lab, você pode ver o mesmo ambiente acima do Notebook e do console:
E você pode escolher o seu ambiente quando tiver um notebook aberto:
A maneira segura é criar um env específico a partir do qual você executará seu exemplo de
jupyter lab
comando env . Ative seu ambiente. Em seguida, adicione o exemplo de extensão do laboratório jupyter . Então você pode correrjupyter lab
fonte
Siga as instruções na documentação do iPython para adicionar diferentes ambientes conda à lista de kernels para escolher no Jupyter Notebook. Em resumo, após a instalação
ipykernel
, você deve ativar cada ambiente conda um por um em um terminal e executar o comandopython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
, ondemyenv
está o ambiente (kernel) que deseja adicionar.fonte
Possível problema específico do canal
Eu tive esse problema (novamente) e, por fim, instalei a partir do canal conda-forge ; removê-lo e reinstalar a partir do canal anaconda , em vez disso, corrigi-lo para mim.
Atualização : Eu voltou a ter o mesmo problema com um novo env, desta vez eu tenha instalado
nb_conda_kernels
a partir anaconda canal, mas a minhajupyter_client
era da Conda-forja canal. Desinstalarnb_conda_kernels
e reinstalar atualizou isso para um canal de prioridade mais alta.Portanto, verifique se você instalou a partir dos canais corretos :)
fonte
jupyter
enb_conda_kernels
deve ser instalado em um ambiente - é aqui que você sempre fogejupyter notebook
. Novos envs só precisamipykernel
, mas não devem ser ativados durante a execuçãojupyter notebook
.No meu caso, usando o Windows 10 e o conda 4.6.11, executando os comandos
do terminal enquanto o ambiente estava ativo não funcionou depois que eu abri o Jupyter na mesma linha de comando usando
conda jupyter notebook
.Aparentemente, a solução foi abrir o Jupyter a partir do Anaconda Navigator, indo ao meu ambiente em Ambientes: Abra o Anaconda Navigator, selecione o ambiente em Ambientes, pressione o botão "reproduzir" no ambiente escolhido e selecione 'abrir com o Jupyter Notebook'.
Ambientes no Anaconda Navigator para executar o Jupyter no ambiente selecionado
fonte
ipykernel
em todos os envs que deseja usar no Jupyter como kernels.