Anaconda vs. EPD Enthought vs. instalación manual de Python [cerrado]

112

¿Cuáles son las ventajas y desventajas relativas de varios paquetes de Python (EPD / Anaconda) frente a una instalación manual?

He instalado EPD Academic y no tengo problemas con él. Proporciona más paquetes que creo que necesitaré alguna vez, y es muy fácil de actualizar usando enpkg enstaller. Sin embargo, la licencia académica EPD requiere una renovación anual y la versión gratuita no se actualiza tan fácilmente.

Por el momento, solo uso un puñado de paquetes como Pandas , NumPy , SciPy , matplotlib , IPython , Statsmodels y sus respectivas dependencias.

Para un uso tan limitado, ¿estoy mejor con la instalación manual pip install --upgrade 'package'o los paquetes ofrecen algo más que esto?

Juan
fuente
2
También mire Python (x, y). Tiene un público objetivo similar al de Enthought Python, pero no cuesta nada. code.google.com/p/pythonxy
Eike
1
Creo que depende del sistema operativo que estés usando. ¿Lo que es tuyo?
Andrea Zonca
5
Una ventaja de usar Anaconda incluso en Ubuntu es que puede tener fácilmente una instalación administrada como usuario no root. O puede tener múltiples entornos con muchas versiones de cualquier paquete en el mismo sistema usando el administrador de paquetes conda que está en el corazón de la distribución de Anaconda.
Travis Oliphant
5
También para su información, Anaconda es completamente gratis para todos, académicos y comerciales. Hay licencias gratuitas disponibles para los académicos de los complementos de Continuum que son una cosa separada de la propia Anaconda.
Travis Oliphant
1
Aquí hay algunos "hechos": Probé algunos cálculos matriciales simples (productos de matriz de puntos, inversiones) usando numpy en anaconda vs vanilla python 2.7. El intérprete de vainilla usa solo 1 hilo de mi computadora portátil, que tiene 4 núcleos y 8 hilos, mientras que anaconda usa los 8 hilos. Entonces, la velocidad es aproximadamente 7 veces más rápida en anaconda.
Jason

Respuestas:

48

Actualización 2015 : Hoy en día siempre recomiendo Anaconda. Incluye muchos paquetes de Python para computación científica, ciencia de datos, desarrollo web, etc. También proporciona una herramienta de entorno superior conda, que permite cambiar fácilmente entre entornos, incluso entre Python 2 y 3. También se actualiza muy rápidamente tan pronto a medida que se lanza una nueva versión de un paquete, y puede hacerlo conda update packagenamepara actualizarlo.

Respuesta original a continuación :

En Windows, lo complicado es compilar los paquetes matemáticos, por lo que creo que una instalación manual es una opción viable solo si solo te interesa Python, sin otros paquetes.

Por lo tanto, mejor elija EPD (ahora Canopy) o Anaconda.

Anaconda tiene alrededor de 270 paquetes, incluidos los más importantes para la mayoría de aplicaciones científicas y análisis de datos, es decir, NumPy , SciPy , Pandas , IPython , matplotlib , Scikit -learn . Entonces, si esto es suficiente para ti, elegiría Anaconda.

En cambio, si está interesado en otros paquetes, e incluso más si usa alguno de los paquetes Enthought ( Chaco, por ejemplo, es muy útil para la visualización de datos en tiempo real), entonces EPD / Canopy es probablemente una mejor opción. La versión Academic tiene una mayor cantidad de paquetes en la instalación básica y muchos más en el repositorio. Anaconda también incluye Chaco.

Andrea Zonca
fuente
1
Estoy viendo la misma pregunta ahora yo mismo. Dices que Canopy incluye más paquetes, ¿eso significa que no es posible instalar estos otros paquetes en anaconda? Parece una tontería limitarme a no saber si dentro de 2 años necesito un paquete determinado.
Dominik
3
con suerte, en 2 años actualizará su sistema operativo o las instalaciones de Python ... de todos modos, sí, puede instalar todos los paquetes de Python adicionales en cualquier distribución de Python que elija. Para los paquetes solo de Python, esto es muy simple. Para los paquetes que incorporan extensiones C o C ++ (generalmente paquetes científicos), esto es más difícil, especialmente bajo Windows, así que es mejor pensar con anticipación.
Andrea Zonca
13
FWIW, Anaconda también incluye Chaco e incluye mucho más que solo 20 paquetes: docs.continuum.io/anaconda/pkgs.html ( Hay más disponibles en el repositorio y no se incluyen con el instalador)
Peter Wang,
3
También FWIW, Anaconda ahora tiene buena información conda-meta / pkg * en todos los paquetes de 100 y pico: requiere, versión ... ( conda-requiere resume todos los requisitos)
denis
3
He estado intentando configurar Python para la minería de datos en mi Mac. Todavía no he resuelto esta nuez, pero la parte más decepcionante hasta ahora ha sido instalar Enthought Canopy Express y luego saber que cobran $ 199 por el acceso a scikit-learn y nltk.
rrs
11

Probé varias distribuciones de Windows en el último año, tratando de encontrar una adecuada para mi entorno de trabajo (detrás de un proxy, pero sin acceso a la configuración del proxy).

Aquí están mis comentarios de la experiencia:

EPD / Canopy: Teníamos una licencia de EPD, pero era antigua y no pudimos actualizar debido a la extraña situación del proxy. Para agregar algunos paquetes (como la versión reciente de xlrd / xlwt ), compilé desde la fuente. Para actualizar SciPy y NumPy , utilicé el instalador precompilado de http://www.lfd.uci.edu/~gohlke/pythonlibs/ , pero a veces estropeaba la compatibilidad. Me encantó tener Py2exe y Cython completamente configurados , y simplemente funcionó de inmediato .

Después de un tiempo, intenté instalar la versión gratuita de Canopy, pero carece de Cython y py2exe y algunos paquetes avanzados específicos que necesitaba, así que nunca lo usé. Algunos de mis colegas compraron la licencia completa de Canopy, pero todavía no estamos seguros de cómo se van a actualizar ...

Python (x, y): no queriendo luchar con las licencias, instalé Python (x, y) en casa. El único inconveniente que noté en este momento es que la instalación estándar requiere que seleccione los paquetes que desea. Es un punto tanto bueno como malo, porque no puedo estar seguro de que mis clientes tengan exactamente la misma configuración que yo cuando instalo. (El conjunto de herramientas Enthought se puede instalar en Python (x, y)). Después de usar Python (x, y) por un tiempo, me di cuenta de que instalé la versión de 32 bits. Aunque no está claro en su sitio web, parece que no tienen una versión de 64 bits en julio de 2015. La desinstalaré y obtendré una distribución de 64 bits.

Anaconda: Cuando escribí esto por primera vez, Anaconda no parecía tener suficientes paquetes todavía. Un par de años después, parece mucho mejor, ¡voy a intentarlo!

Manual: para evitar problemas de compatibilidad de versiones con nuestra versión anterior de EPD, terminé usando la instalación manual de Python y agregando paquetes adicionales del sitio web de LFD vinculado anteriormente. Funciona muy bien, pero aún así sugeriría Canopy a un nuevo usuario que requiera paquetes avanzados (como GDAL o PyFITS ).

Resumen: Si opta por Canopy, obtenga la licencia completa (académica o comprada). De lo contrario, vaya con Python (x, y), terminará siendo lo mismo.

En Ubuntu: No es necesaria una distribución. Todo es relativamente reciente (+/- 6 meses es tolerable) y está precompilado. ¡Solo necesita ejecutar sudo apt-get install python python-scipyy ya está! Los paquetes más avanzados también están ahí.

PhilMacKay
fuente
Oye Rafael, ¿has mirado a Anaconda últimamente? Ha recorrido un largo camino.
Peter Wang
Descarga de pythonxy : no está en la dirección esperada, que es solo un dominio estacionado en este momento.
pbhj
Usar el repositorio de ubuntu python / scipy, etc. (instalado con apt) está bien, pero siempre hay algunas versiones por detrás, lo que puede ser una molestia, ya que no se corrigen errores ni se utilizan nuevas funciones útiles. Por lo general, prefiero instalar con pip y obtener las últimas versiones estables.
drevicko
4

Las otras respuestas cubren el terreno bastante bien, así que solo quiero comentar un aspecto en particular que nadie ha mencionado todavía. Probablemente sea un nicho, pero potencialmente puede hacer o deshacer Anaconda o Canopy para algunas personas en sistemas Linux:

Las compilaciones de Anaconda Python usan el modo UCS4 Unicode, mientras que Enthought Canopy usa UCS2.

Lo que esto significa en términos prácticos es que si confía en alguna extensión que no pueda compilar usted mismo por cualquier motivo (por ejemplo, bibliotecas propietarias precompiladas), si resulta que no están compiladas para una versión de Python con el mismo modo, es posible que lo haga antes. o más tarde encontrar errores que se parezcan a undefined symbol: PyUnicodeUCS4_AsUTF8String.

Según PEP 0513 , UCS4 parece ser actualmente más popular y recomendado. Además, todos los problemas de compatibilidad con UCS parecen afectar solo a las versiones 2.xy <3.3.

Dologan
fuente
En realidad, es útil saberlo. ¡Gracias!
pysolver
-4

Usé Anaconda durante años y me gustó bastante. Desafortunadamente, IPython Notebook (ahora Jupyter ) no está disponible sin la edición empresarial.

Quiero usar los cuadernos de Jupyter en el aula, así que cambié a Canopy. Parece bastante fácil instalar todos los paquetes que necesitamos. Es cierto que no los hemos probado todos.

JLeC
fuente
1
Al menos mi Jupyter Notebook todavía funciona con la versión estándar (gratuita) de Anaconda. ¿Podría explicar de dónde sacó esa información? Al menos en la página de inicio oficial de Anaconda, Jupyter todavía aparece en la lista.
MSeifert
2
Esto es realmente falso. Jupyter / IPython siempre ha estado disponible en Anaconda gratis. FWIW, Continuum Analytics (el fabricante de Anaconda) emplea a varios desarrolladores centrales de Jupyter.
Peter Wang
Corrija su respuesta errónea. El sitio web de ipython incluso le dice cómo instalar usando Anaconda: ipython.org/install.html
Bradley Kreider