¿Cómo ejecutar Spyder en un entorno virtual?

98

He estado usando Spyder instalado con la distribución Anaconda que usa Python 2.7 por defecto. Actualmente necesito configurar un entorno virtual de desarrollo con Python 3.4.

Las dos sugerencias principales después de investigar en línea son:

  1. para configurar el entorno virtual primero y apuntar a cambiar las preferencias de Spyder, por ejemplo aquí ;
  2. para instalar todas las dependencias de Spyder, como PyQt4, en el propio entorno virtual, por ejemplo aquí ;

Ambas recomendaciones son engorrosas y no parecen opciones inteligentes para el desarrollo.

¿Existe una solución que permita ejecutar Spyder con la versión requerida de Python automáticamente después de activar el entorno virtual requerido?

tomaskazemekas
fuente

Respuestas:

114

Aquí hay una forma rápida de hacerlo en 2020. Usando el navegador Anaconda:

  1. Abrir Anaconda Navigator
  2. Crea tu nuevo entorno como desees. Llamé a este entorno "prueba". Haga clic en él para activarlo.

ingrese la descripción de la imagen aquí

  1. Vaya a "Inicio" y haga clic en "Instalar" debajo del cuadro de Spyder.

ingrese la descripción de la imagen aquí

  1. Haga clic en "Iniciar / Ejecutar"

Todavía hay algunos errores menores al configurar su entorno (la mayoría de los cuales se resuelven reiniciando el Navegador), si encuentra un error, publíquelo en el rastreador de errores de Anaconda Issues . Gracias.


Si incluso entonces esto no funciona, Navigator aún podría ser útil, al hacer clic en> Entornos lo lleva a una ventana de administración para los módulos instalados en dicho entorno, buscar y seleccionar los relacionados con el spyder, y luego hacer clic en Aplicar los instalará y sus dependencias.

ingrese la descripción de la imagen aquí

adelriosantiago
fuente
11
Esto debe agregarse a la solución superior si es posible
dward4
2
Mucho mejor.
Eric Auld
2
Si. Parece que uno tiene que instalar una instancia diferente de Spyder para cada VE.
Mikhail Genkin
3
¿Puedo hacer esto desde la línea de comandos? Ejecutar Navigator cada vez parece una
lata
1
@nocibambi Sí, si solo quiere ejecutar Spyder en un env desde cmd, vea la parte inferior de la respuesta de tomaskazemekas.
Lorenz
104

Existe una opción para crear entornos virtuales en Anaconda con la versión de Python requerida.

conda create -n myenv python=3.4

Para activarlo:

source activate myenv   # (in linux, you can use . as a shortcut for "source")
activate myenv          # (in windows - note that you should be in your c:\anaconda2 directory)

ACTUALIZAR . Lo he probado con Ubuntu 18.04. Ahora tiene que instalar spyder adicionalmente para el nuevo entorno con este comando (después de la activación del entorno con el comando anterior):

conda install spyder

(También probé la instalación con pip, pero para Python 3.4 o versiones anteriores, se rompe con el error de dependencias de la biblioteca que requiere instalación manual).

Y ahora, para ejecutar Spyder con Python 3.4, simplemente escriba:

spyder

Spyder con Python 3.4

EDITAR de un lector:

Para una apertura normal, el uso de "Anaconda del sistema"> activate myenv> spyder(entonces la "Anaconda del sistema" debe permanecer abierta, no se puede utilizar para otros comandos, y una fuerza de cierre se apagará Spyder). Por supuesto, esto es más rápido que la carga larga de "Anaconda Navigator"> cambiar entorno> lanzar Spyder (respuesta de @ adelriosantiago).

tomaskazemekas
fuente
7
Probé esto en Windows 7 y funcionó. No es necesario que agregue la palabra "fuente" al principio para activar el entorno. Para tener Python 2,7, cambie la configuración a python = 2.7.
tomaskazemekas
4
oh, tal vez tengas que instalar spyder en ese entorno primero. Creé el entorno con numpy en lugar de anaconda, así que tal vez esté ejecutando spyder desde el entorno principal.
endolito
4
ese parece ser el problema. Lo mismo con ipython, pero se solucionó después de instalarlo en el entorno
endolith
9
También encontré que en Windows (10), simplemente al iniciar spyder desde un entorno anaconda todavía se lanzaba spyder con mi python predeterminado, y tuve que conda instalar spyder en el entorno anaconda primero para abrir spyder con la python de ese entorno.
Max Power
9
También asegúrese de tener spyder en ese entorno antes deconda install -n myenv spyder
shahar_m
57

Además de la respuesta de tomaskazemekas: debe instalar spyder en ese entorno virtual mediante:

conda install -n myenv spyder

(en Windows, Linux o MacOS, puede buscar comandos similares)

Tin Luu
fuente
2
Normalmente, Spyder se instala como parte de la lista de paquetes de Anconda Python . Es posible que se necesite una instalación adicional solo en el caso de miniconda.
tomaskazemekas
1
Sí, eso es correcto. En mi caso, ya tenía mi entorno virtual instalado antes, y es una versión ligera, solo instalo paquetes muy necesarios. Supongo que alguien está en mi situación.
Tin Luu
@tomaskazemekas señor, instalé miniconda3 :) ¿Cómo puedo ejecutar mi código de Python en Spyder si no sé cómo ejecutar Spyder? cuando escribo "spyder" en el indicador de miniconda "no pude reconocer este comando" se genera un error.
Noman marwat
@Noman marwat Ya que spyder no es parte de miniconda, debes instalarlo antes de ejecutarlo con el comando conda install spyder.
tomaskazemekas
Después de eso, busque el enlace simbólico dentro del myenv/bindirectorio y cópielo en la Applicationscarpeta para que pueda encontrarlo fácilmente y ejecutar Spyder dentro de su entorno sin tener que escribir en una ventana pequeña y negra. (también puede agregarle fácilmente un ícono, si le
gustan los
48

Lo que funcionó para mí:

  1. ejecutar spyder desde el entorno (después de activar la fuente)
  2. vaya a Herramientas -> preferencias -> intérprete de Python y seleccione el archivo de Python del env que desea vincular spyder ex: / home / you / anaconda3 / envs / your_env / bin / python

Trabajó en ubuntu 16, spyder3, python3.6.

Boussad
fuente
Después de probar todo el resto de esta y otras publicaciones (¡dos días intentándolo!), Esta fue la única solución funcional para establecer los entornos de entorno adecuados dentro de Spider ..
Antonio Canepa
No requiera el paso (1), ya que el paso (2) ya enrutaba al intérprete al entorno.
Feras
2
@Feras Para futuros lectores: También pensé que el paso 1 era redundante. Pero omitirlo causa todo tipo de errores locos (e incluso hace que la interfaz de usuario falle y Spyder no responda).
cheekybanana
17

Para prescindir de reinstalar spyder en todos los entornos, siga la referencia oficial aquí .

En resumen (probado con conda):

  • Spyder debe instalarse en el entorno base

Desde el indicador del sistema:

  • Crea un nuevo entorno. Tenga en cuenta que, dependiendo de cómo lo cree (conda, virtualenv), la carpeta del entorno se ubicará en un lugar diferente en su sistema)

  • Activar el entorno (p. Ej., conda activate [yourEnvName])

  • Instale spyder-kernels dentro del entorno (por ejemplo, conda install spyder-kernels)

  • Busque y copie la ruta del ejecutable de Python dentro del entorno. Encontrar esta ruta se puede hacer usando desde el indicador este comandopython -c "import sys; print(sys.executable)"

  • Desactivar el entorno (es decir, volver a la base conda deactivate)

  • ejecutar spyder ( spyder3)

  • Finalmente, en el menú de la herramienta Spyder, vaya a Preferencias> Intérprete de Python> Utilice el siguiente intérprete y pegue la ruta ejecutable del entorno Python

  • Reinicie la consola ipython

PD: en spyder deberías ver en la parte inferior algo como estoingrese la descripción de la imagen aquí

Voila

Alexis
fuente
Ésta es la única respuesta sensata.
sjsam
Tenga en cuenta que al usar virtualenv & spyder 4.1.3 no aparece nada en la línea inferior que lo confirme (aunque todo funcionó según lo previsto)
Alexis
¡Esta es la respuesta correcta! Además, la instalación de spyder puede realizarse en cualquier entorno virtual de conda. No necesita estar en un entorno básico.
Sanchit
1
Tienes razón @Sanchit, puedes "pip / conda" instalar spyder en cada entorno y luego puedes llamarlo desde allí, pero cuando quieras una sola instalación, esta es la solución
Alexis
10

Las respuestas anteriores son correctas, pero al llamar spyderdentro de mi virtualenv todavía usaría my PATHpara buscar la versión de spyder en mi entorno anaconda predeterminado. Encontré esta respuesta que dio la siguiente solución:

source activate my_env            # activate your target env with spyder installed
conda info -e                     # look up the directory of your conda env
find /path/to/my/env -name spyder # search for the spyder executable in your env
/path/to/my/env/then/to/spyder    # run that executable directly

Elegí esto en lugar de modificar PATHo agregar un enlace al ejecutable con una prioridad más alta, PATHya que sentí que era menos probable que rompiera otros programas. Sin embargo, agregué un alias al ejecutable en ~/.bash_aliases.

Steven Kalt
fuente
8

Acabo de tener el mismo problema al intentar que Spyder se ejecute en un entorno virtual.

La solucion es simple:

Activa tu entorno virtual.

Luego, instale Spyder y sus dependencias (PyQt5) en su entorno virtual.

Luego, inicie Spyder3 desde la CLI de su entorno virtual.

Me funciona bien ahora.

Programador de Jerusalén
fuente
1
Esto ya no funciona con python2 bajo ubuntu 16. ¿Alguna idea de una solución alternativa?
masad
Python 2 está obsoleto. Se recomienda y aconseja actualizarse para usar Python 3.
Programador de Jerusalén
4

En Windows:

Puede crear un atajo ejecutando

Anaconda3\pythonw.exe Anaconda3\cwp.py Anaconda3\envs\<your_env> Anaconda3\envs\<your env>\pythonw.exe Anaconda3\envs\<your_env>\Scripts\spyder-script.py

Sin embargo, si inició spyder desde su venv dentro de Anaconda shell, creo que crea este acceso directo para usted (solo busque "Spyder" en Windows).

batidora
fuente
1

Sigo uno de los consejos anteriores y de hecho funciona. En resumen, mientras descarga Anaconda en Ubuntu, el uso de los consejos dados anteriormente puede ayudarlo a 'crear' entornos. El valor predeterminado cuando descargas Spyder en mi caso es: (base) smith @ ubuntu ~ $ . Después de crear el entorno, es decir, fenics y activarlo con $ conda active fenics, el indicador cambia a (fenics) smith @ ubuntu ~ $ . Luego inicia Spyder desde este mensaje, es decir, $ spydery su sistema abre el IDE de Spyder, y puede escribir código fenics en él. Recuerde que cada vez que abre una terminal, su sistema abre el indicador predeterminado. Tienes que activar tu entorno donde está tu paquete y el aviso de cambio a él, es decir (fenics). Espero que esto sea de ayuda. Gracias, así como a todas las personas que ayudaron. Esta comunidad es genial.

batman47
fuente