Cuando ejecuto Python desde la terminal y desde Atom
, se llaman diferentes versiones de python. Como consecuencia, hay paquetes a los que puedo llamar sin problemas desde el terminal pero que no puedo llamar desde Atom
. Aquí están los detalles:
Al llamar a python
desde el terminal
, obtengo la versión 3.7.1
$ python Python 3.7.1 | packaged by conda-forge | (default, Nov 13 2018, 09:50:42) [Clang 9.0.0 (clang-900.0.37)] :: Anaconda custom (64-bit) on darwin
(Obtengo exactamente lo mismo si python3
en python3
lugar)
Ahora, al mirar la versión de python
de Atom
obtengo la versión 3.6.5 con
>>> import sys >>> print(sys.version 3.6.5 | packaged by conda-forge | (default, Apr 6 2018, 13:44:09) [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]
¿Cómo? ¿Cómo puedo hacer que Atom
obtenga la misma versión que la versión de Terminal?
Intentos fallidos
Mirando el PATH
con el comando import sys
y luego print(sys.path)
aquí es lo que obtengo:
Desde el átomo:
['', '/anaconda3/lib/python36.zip', '/anaconda3/lib/python3.6', '/anaconda3/lib/python3.6/lib-dynload', '/anaconda3/lib/python3.6/site-packages', '/anaconda3/lib/python3.6/site-packages/aeosa', '/anaconda3/lib/python3.6/site-packages/cycler-0.10.0-py3.6.egg', '/anaconda3/lib/python3.6/site-packages/IPython/extensions', '/Users/mymac/.ipython']
Desde la Terminal:
['', '/Users/mymac/anaconda3/lib/python37.zip', '/Users/mymac/anaconda3/lib/python3.7', '/Users/mymac/anaconda3/lib/python3.7/lib-dynload', '/Users/mymac/anaconda3/lib/python3.7/site-packages', '/Users/mymac/anaconda3/lib/python3.7/site-packages/aeosa']
Parece que Atom
está usando la versión de Python de pyenv
dado el siguiente comando y salida:
$ pyenv versions * system (set by /Users/mymac/.pyenv/version) 3.6.5
De acuerdo con la página github de pyenv . Entré en pyenv virtualenv 3.7.1
. Luego, al ingresar las $ pyenv versions
al menos la versión 3.7.1 estaba en la lista:
* system (set by /Users/mymac/.pyenv/version) 3.6.5 3.7.1
Pero eso no solucionó el problema con Atom
Luego visité la página de configuración de entorno de administración y ejecuté los siguientes comandos:
$ conda create --name myenv
Corrió sin problema, pero el problema persiste.
Luego intenté ejecutar más específicamente $ conda create -n myenv python=3.7.1
pero obtuve: CondaValueError: prefix already exists: /Users/mymac/anaconda3/envs/myenv
Como señaló @jmh Entonces intenté: $ source activate 3.7.1
y obtuve el siguiente aviso: (3.7.1) user:~ user$
Pude elegir correctamente el correcto, el virtualenv correcto. Pero luego de abrir Atom
el problema persistió.
Debe tener múltiples intérpretes de Python (versiones diferentes) en su computadora. Abra la paleta de comandos en Atom y elija “Python: Seleccionar intérprete”. Seleccione la versión de Python que desea utilizar.
Si tiene varias versiones de python, debería utilizar entornos virtuales. La versión de python utilizada desde el terminal dependerá de qué entorno virtual haya activado. Atom usará lo mismo entonces. Active la versión de python que desee y luego ejecute Atom.
Si está utilizando Anaconda, instale los entornos conda. Es muy simple si usas Anaconda. Se requieren algunos pasos adicionales si no lo está utilizando.
Internet está lleno de direcciones para crear entornos virtuales.
Creé un entorno llamado py27 para python 2.7. Cuando activo este entorno, se muestra en la línea del cursor así:
.
Si no ve esto, su entorno no se ha activado. Para activar en una source activate py27
tipo Mac, source activate py27
. No creo que necesites la fuente de la palabra en una PC, pero no puedo probar eso.
Ok, tuve que cambiar la Path
en el archivo .json del kernel jupyter. Primero revisé la lista de kernel jupyter:
$ jupyter kernelspec list julia-0.6 /Users/mymac/Library/Jupyter/kernels/julia-0.6 julia-1.0 /Users/mymac/Library/Jupyter/kernels/julia-1.0 python3 /Users/mymac/Library/Jupyter/kernels/python3
Luego cd
la ruta Python anterior y, encontré el archivo kernel.json
dentro y lo abrí:
{ "argv": [ "/path/to/python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3", "language": "python" }
En ese archivo, cambié la línea /path/to/python
por la ruta python que obtuve al escribir lo siguiente en la Terminal:
$ which python /Users/mymac/anaconda3/bin/python
Relanzó Atom
y finalmente funcionó!
¡Las sugerencias de la página de github de jupyter también ayudaron mucho!