Instalé Anaconda (con Python 2.7) e instalé Tensorflow en un entorno llamado tensorflow
. Puedo importar Tensorflow con éxito en ese entorno.
El problema es que Jupyter Notebook no reconoce el nuevo entorno que acabo de crear. No importa comienzo Jupyter portátil de la interfaz gráfica de usuario del navegador o desde la línea de comandos dentro del tensorflow
env, sólo hay un núcleo en el menú llamado Python [Root]
, y Tensorflow no se puede importar. Por supuesto, hice clic en esa opción varias veces, guardé el archivo, lo volví a abrir, pero esto no ayudó.
Curiosamente, puedo ver los dos entornos cuando abro la Conda
pestaña en la página principal de Jupyter. Pero cuando abro la Files
pestaña e intento new
usar una computadora portátil, todavía termino con un solo núcleo.
Miré esta pregunta:
vincular el entorno de Conda con Jupyter Notebook ¡
Pero no hay un directorio como ~/Library/Jupyter/kernels
en mi computadora! Este directorio de Jupyter solo tiene un subdirectorio llamado runtime
.
Estoy realmente confundido ¿Se supone que los entornos Conda se convierten en núcleos automáticamente? (Seguí https://ipython.readthedocs.io/en/stable/install/kernel_install.html para configurar manualmente los núcleos, pero me dijeron que ipykernel
no se encontró).
fuente
conda install ipykernel
en ese ambiente.conda install ipykernel
parece instalarsejupyter
en el entorno ... ¿Me estoy perdiendo algo?nb_conda
se usa o si el núcleo se configura manualmente como se sugiere en la pregunta. De lo contrario, realmente arruinará bastante las cosas. El ejecutablejupyter
apuntará a un ejecutable dentro del entorno, pero el sistemajupyter-notebook
se iniciará (si está instalado) y, por lo tanto, no utilizará el entorno con el núcleo predeterminado.Respuestas:
No creo que las otras respuestas funcionen más, ya que conda dejó de configurar automáticamente los entornos como núcleos jupyter. Debe agregar manualmente los núcleos para cada entorno de la siguiente manera:
Como se documenta aquí: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments También vea este problema .
Anexo: Debería poder instalar el
nb_conda_kernels
paqueteconda install nb_conda_kernels
para agregar todos los entornos automáticamente, consulte https://github.com/Anaconda-Platform/nb_conda_kernelsfuente
nb_conda_kernels
trabajado para mí, como de 2018 abril (Python 3.6.4
,conda 4.3.27
,jupyter 4.4.0
).conda install ipykernel
esta respuesta, se supone que ya lo tiene instalado en su entorno.Si sus entornos no se muestran, probablemente no haya
nb_conda_kernels
instalado en el entorno donde está instalado Jupyter. La documentación de Anaconda establece queTenga en cuenta que en el momento de publicar esto originalmente, había una posible causa por
nb_conda
no admitir aún los entornos Python 3.6 .Si otras soluciones no logran que Jupyter reconozca otros entornos conda, siempre puede instalar y ejecutar
jupyter
desde un entorno específico. Sin embargo, es posible que no pueda ver o cambiar a otros entornos desde Jupyter.Tenga en cuenta que estoy ejecutando Python 3.6.1 en este cuaderno:
Tenga en cuenta que si hace esto con muchos entornos, el espacio de almacenamiento adicional de la instalación de Jupyter en cada entorno puede ser indeseable (dependiendo de su sistema).
fuente
nb_conda
El propósito es "[proporcionar] el entorno Conda y la extensión de acceso a paquetes desde Jupyter", no para que pueda ejecutar Jupyter desde la instalación de Python elegida.ipykernel
debe instalarse en cada entorno que desee usar como núcleo.Lo molesto es que en su
tensorflow
entorno, puede ejecutarjupyter notebook
sin instalarjupyter
en ese entorno . Solo correy el
tensorflow
entorno ahora debería ser visible en los Cuadernos Jupyter iniciados en cualquiera de susconda
entornos como algo asíPython [conda env:tensorflow]
.fuente
conda install nb_conda
en uno de sus entornos conda de origen (que tiene instalada la computadora portátil Jupyter). Luego puede cambiar kernels / conda envs en el navegador jupyter notebook.ipykernel
(que es lo único que realmente se necesita), es una dependencia dejupyter
.Tuve que ejecutar todos los comandos mencionados en las 3 respuestas principales para que esto funcione:
fuente
conda install nb_conda
jupyter lab
dentro de ese entorno específicoSimplemente ejecute
conda install ipykernel
en su nuevo entorno, solo entonces obtendrá un núcleo con este entorno. Esto funciona incluso si tiene diferentes versiones instaladas en cada entorno y no instala jupyter notebook nuevamente. Puede iniciar su cuaderno desde cualquier entorno en el que pueda ver los núcleos recién agregados.fuente
conda install ipykernel
dentro de su entorno conda. En el peor de los casos, puede usarlopython -m ipykernel install --user --name mykernel
para generar manualmente el núcleo, pero no querrá hacerlo si ya se descubrió automáticamente, o aparecerá dos veces en la lista del núcleo.Resumen (tldr)
Si desea que el kernel 'python3' ejecute siempre la instalación de Python desde el entorno donde se inicia, elimine el kernel 'python3' del usuario, que tiene prioridad sobre el entorno actual con el que se encuentre:
Solución completa
Voy a publicar una solución alternativa y más simple para el siguiente caso:
jupyter notebook
y crea un nuevo cuaderno haciendo clic en 'python3' en el menú desplegable 'Nuevo', ese cuaderno ejecuta python desde el entorno base y no desde el entorno actual.Voy a usar el nombre 'test_env' para el entorno para el resto de la solución. Además, tenga en cuenta que 'python3' es el nombre del núcleo.
La respuesta más votada actualmente funciona, pero hay una alternativa. Dice hacer lo siguiente:
Esto le dará la opción de usar el entorno test_env sin importar desde qué entorno inicie
jupyter notebook
. Pero, el lanzamiento de una computadora portátil con 'python3' seguirá utilizando la instalación de Python desde el entorno base.Lo que probablemente está sucediendo es que existe un núcleo de usuario python3 que existe. Ejecute el comando
jupyter kernelspec list
para enumerar todos sus entornos. Por ejemplo, si tiene una Mac, se le devolverá lo siguiente (mi nombre de usuario es Ted).Lo que Jupyter está haciendo aquí es buscar a través de tres caminos diferentes en busca de núcleos. Va de Usuario , a Env , a Sistema . Consulte este documento para obtener más detalles sobre las rutas que busca para cada sistema operativo.
Los dos núcleos anteriores se encuentran en la ruta del usuario, lo que significa que estarán disponibles independientemente del entorno desde el que inicie un jupyter notebook. Esto también significa que si hay otro kernel 'python3' a nivel de entorno, nunca podrá acceder a él.
Para mí, tiene más sentido que la elección del núcleo 'python3' del entorno desde el que lanzó el portátil ejecute Python desde ese entorno.
Puede verificar si tiene otro entorno 'python3' buscando en la ruta de búsqueda Env para su sistema operativo (consulte el enlace a los documentos anteriores). Para mí (en mi Mac), emití el siguiente comando:
Y de hecho tenía un kernel 'python3' listado allí.
Gracias a este comentario de problema de GitHub (mira la primera respuesta), puedes eliminar el entorno del usuario 'python3' con el siguiente comando:
Ahora, cuando ejecute
jupyter kernelspec list
, suponiendo que test_env todavía esté activo, obtendrá lo siguiente:Observe que esta ruta se encuentra dentro del directorio test_env. Si crea un nuevo entorno, instala jupyter, lo activa y enumera los núcleos, obtendrá otro núcleo 'python3' ubicado en su ruta de entorno.
El núcleo del usuario 'python3' tenía prioridad sobre cualquiera de los núcleos Env 'python3'. Al eliminarlo, el núcleo del entorno activo 'python3' quedó expuesto y se pudo elegir cada vez. Esto elimina la necesidad de crear manualmente núcleos. También tiene más sentido en términos de desarrollo de software donde uno quisiera aislarse en un solo entorno. Ejecutar un kernel que es diferente del entorno del host no parece natural.
También parece que este usuario 'python3' no está instalado para todos de forma predeterminada, por lo que no todos se enfrentan a este problema.
fuente
(en el entorno conda donde ejecuta jupyter notebook) hará que todas las env conda estén disponibles automáticamente. Para acceder a otros entornos, se deben instalar los respectivos núcleos. Aquí está la referencia .
fuente
Hemos luchado mucho con este problema, y esto es lo que funciona para nosotros. Si usa el canal conda-forge , es importante asegurarse de que está usando paquetes actualizados
conda-forge
, incluso en suMiniconda
entorno raíz.Entonces instale Miniconda , y luego haga:
y su entorno personalizado se mostrará en Jupyter como un kernel disponible, siempre y cuando esté
ipykernel
listado para la instalación en sucustom_env.yml
archivo, como este ejemplo:Solo para demostrar que funciona con un montón de entornos personalizados, aquí hay una captura de pantalla de Windows:
fuente
El
nb_conda_kernels
paquete es la mejor manera de utilizarjupyter
conconda
. Con dependencias y configuraciones mínimas, le permite usar otros entornos conda desde una notebook jupyter que se ejecuta en un entorno diferente. Citando su documentación :Entonces todo lo que necesita hacer es iniciar el servidor jupyter notebook:
A pesar de la gran cantidad de respuestas y los esfuerzos de @ merv para mejorarlas, aún es difícil encontrar una buena. Hice este CW, ¡así que vote por la parte superior o mejórelo!
fuente
Me encontré con el mismo problema en el que mi nuevo entorno de conda
myenv
no podía seleccionarse como kernel o portátil nuevo. Y correrjupter notebook
desde dentro del entorno dio el mismo resultado.Mi solución y lo que aprendí acerca de cómo los portátiles Jupyter reconocen conda-envs y kernels:
Instalando jupyter e ipython
myenv
con conda:Después de eso, ejecutar
jupter notebook
fuera de cualquiermyenv
entorno enumerado como un núcleo junto con mis entornos anteriores.Ejecutar el cuaderno una vez que activé el entorno:
oculta todos mis otros núcleos de entorno y solo muestra mis núcleos de idioma:
fuente
Esto funcionó para mí en Windows 10 y la última solución:
1) Entra en ese entorno de conda (activa your_env_name)
2) conda install -n your_env_name ipykernel
3) python -m ipykernel install --user --name build_central --display-name "your_env_name"
(NOTA: Incluya las comillas alrededor de "your_env_name", en el paso 3)
fuente
Esto ha sido muy frustrante. Mi problema fue que, dentro de un entorno de conda python36 recién construido, jupyter se negó a cargar "seaborn", a pesar de que seaborn se instaló dentro de ese entorno. Parecía poder importar muchos otros archivos del mismo entorno, por ejemplo, numpy y pandas, pero no nacidos. Probé muchas de las soluciones sugeridas aquí y en otros hilos sin éxito. Hasta que me di cuenta de que Jupyter no estaba ejecutando kernel python desde ese entorno sino que ejecutaba el sistema python como kernel. A pesar de que un núcleo decente y kernel.json ya estaban presentes en el entorno. Fue solo después de leer esta parte de la documentación de ipython: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments y usando estos comandos:
Pude hacer que todo saliera bien. (En realidad no utilicé la variable de usuario).
Una cosa que aún no he imaginado es cómo configurar la python predeterminada para que sea la "Python (other-env)". En la actualidad, un archivo .ipynb existente abierto desde la pantalla de inicio utilizará el sistema python. Tengo que usar el menú Kernel "Cambiar kernel" para seleccionar el entorno python.
fuente
Si bien la respuesta de @coolscitist funcionó para mí, también hay una manera que no satura el entorno de su kernel con el paquete completo de jupyter + deps. Se describe en los documentos de ipython y (sospecho) solo es necesario si ejecuta el servidor portátil en un entorno no base.
Puedes verificar si funciona usando
fuente
conda install nb_conda_kernels
funciona mejor.python -m ipykernel install
es la ruta tradicional de registro de un entorno, y funciona para otros entornos (no Conda). La idea detrás de estonb_conda_kernels
es que no necesita hacer esto manualmente, siempre que lo instaleipykernel
.Tuve un problema similar y encontré una solución que funciona para Mac, Windows y Linux. Se necesitan algunos ingredientes clave que se encuentran en la respuesta anterior:
Para poder ver conda env en el cuaderno Jupyter, necesitas:
El siguiente paquete en su base env:
conda install nb_conda
el siguiente paquete en cada env que cree:
conda install ipykernel
verifique la configuración de la
jupyter_notebook_config.py
primera verificación si tiene una
jupyter_notebook_config.py
en una de las ubicaciones proporcionadas porjupyter --paths
si no existe, créelo ejecutando
jupyter notebook --generate-config
add o asegúrese de tener lo siguiente:
c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'
El entorno que puedes ver en tu terminal:
En Jupyter Lab puede ver el mismo entorno que el anterior, tanto el Notebook como la Consola:
Y puede elegir su entorno cuando tenga un cuaderno abierto:
La forma segura es crear un entorno específico desde el que ejecutará su ejemplo de
jupyter lab
comando env . Activa tu env. Luego, agregue la extensión de jupyter lab . Ejemplo de extensión de jupyter lab . Entonces puedes correrjupyter lab
fuente
Siga las instrucciones en la documentación de iPython para agregar diferentes entornos conda a la lista de núcleos para elegir en Jupyter Notebook. En resumen, después de la instalación
ipykernel
, debe activar cada entorno conda uno por uno en un terminal y ejecutar el comandopython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
, dondemyenv
está el entorno (kernel) que desea agregar.fuente
Posible problema específico del canal
Tuve este problema (nuevamente) y resultó que lo instalé desde el canal conda-forge ; eliminarlo y reinstalarlo desde el canal anaconda lo arregló para mí.
Actualización : Me volvió a tener el mismo problema con un nuevo env, esta vez me instalo
nb_conda_kernels
de anaconda canal, pero mijupyter_client
era del Conda-forja canal. La desinstalaciónnb_conda_kernels
y reinstalación actualizó eso a un canal de mayor prioridad.Así que asegúrese de haber instalado desde los canales correctos :)
fuente
jupyter
ynb_conda_kernels
debe instalarse en un entorno: aquí es donde siempre se ejecutajupyter notebook
. Los nuevos envs solo necesitanipykernel
, pero no deben activarse cuando se ejecutanjupyter notebook
.En mi caso, usando Windows 10 y conda 4.6.11, ejecutando los comandos
desde el terminal mientras tenía el entorno activo no hizo el trabajo después de que abrí Jupyter desde la misma línea de comando usando
conda jupyter notebook
.Aparentemente, la solución fue abrir Jupyter desde Anaconda Navigator yendo a mi entorno en Entornos: abrir Anaconda Navigator, seleccionar el entorno en Entornos, presionar el botón "reproducir" en el entorno elegido y seleccionar "abrir con Jupyter Notebook".
Entornos en Anaconda Navigator para ejecutar Jupyter desde el entorno seleccionado
fuente
ipykernel
en todos los entornos que desea utilizar en Jupyter como núcleos.