Anaconda vs. EPD Enthought vs. instalación manual de Python
canopy vs anaconda (4)
He intentado varias distribuciones de Windows en el último año, tratando de encontrar un sutable para mi entorno de trabajo (detrás de un proxy, pero sin acceso a la configuración del proxy).
Aquí está mi opinión 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 más 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 arruinaba la compatibilidad. Me encantó tener un Py2exe y Cython completamente configurados, y simplemente funcionó de la caja.
Después de un tiempo, traté de instalar la versión gratuita de Canopy, pero carece de Cython y py2exe y algunos paquetes avanzados específicos que necesitaba, así que nunca los usé realmente. Algunos de mis colegas compraron la licencia completa de Canopy, pero aún no estamos seguros de cómo van a actualizar ...
Python (x, y): no queriendo luchar con 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 qué paquetes desea. Es un punto bueno y otro malo, porque no puedo estar seguro de que mis clientes tengan exactamente la misma configuración que yo cuando instalo. (El conjunto de herramientas de Enthought se puede instalar en Python (x, y)). Después de usar Python (x, y) por un tiempo, me acabo de dar 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 a partir de julio de 2015. Voy a desinstalarlo y obtener 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 antigua versión EPD, terminé usando la instalación manual de Python y añadiendo paquetes adicionales desde el sitio web de LFD vinculado anteriormente. Funciona de maravilla, pero aún sugeriría Canopy a un nuevo usuario que requiera paquetes avanzados (como GDAL o PyFITS ).
Resumen: si elige Canopy, obtenga la licencia completa (académica o adquirida). De lo contrario, ve con Python (x, y), terminará siendo el mismo.
En Ubuntu: no hay necesidad de una distribución. Todo es relativamente reciente (+/- 6 meses es tolerable) y precompilado. ¡Solo necesita ejecutar sudo apt-get install python python-scipy
y está ahí! La mayoría de los paquetes avanzados también están allí.
¿Cuáles son los méritos / desventajas relativos de varios paquetes de Python (EPD / Anaconda) frente a una instalación manual?
He instalado EPD académico, y no tengo problemas con él. Proporciona más paquetes que creo que alguna vez necesitaré, y es muy fácil de actualizar usando enpkg enstaller. Sin embargo, la licencia académica de EPD requiere una renovación anual y la versión gratuita no 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, ¿me siento mejor con la instalación manual y la instalación de pip install --upgrade ''package''
o los paquetes ofrecen algo más allá de esto?
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 bastante nicho, pero puede potencialmente hacer o romper 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 extensiones que no puede compilar usted mismo por cualquier razón (por ejemplo, bibliotecas propietarias pre compiladas), si no se crean para una versión de Python con el mismo modo, es posible que antes o más tarde se ejecuta en errores que se parecen a undefined symbol: PyUnicodeUCS4_AsUTF8String
.
Según PEP 0513 , UCS4 parece ser actualmente más popular y recomendado. Además, los problemas de compatibilidad de UCS parecen afectar únicamente a las versiones 2.x y <3.3.
Utilicé Anaconda durante años y me gustó bastante. Lamentablemente, IPython Notebook (ahora Jupyter ) no está disponible sin la edición empresarial.
Quiero usar cuadernos Jupyter en el aula, así que cambié a Canopy. Parece bastante fácil de instalar todos los paquetes que necesitamos. Es cierto que no los hemos probado todos.
Actualización 2015 : hoy en día siempre recomiendo Anaconda. Incluye muchos paquetes de Python para informática 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. pronto cuando se lanza una nueva versión de un paquete, y usted puede hacer conda update packagename
del conda update packagename
para 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 está interesado en Python
, sin otros paquetes.
Por lo tanto, es mejor elegir ya sea EPD (ahora Canopy) o Anaconda.
Anaconda tiene alrededor de 270 paquetes, incluidos los más importantes para la mayoría de las aplicaciones científicas y análisis de datos, es decir, NumPy , SciPy , Pandas , IPython , matplotlib , matplotlib Scikit-learn . Entonces, si esto es suficiente para ti, elegiría Anaconda.
En cambio, si está interesado en otros paquetes, y aún más si usa cualquiera de los paquetes de Enthought (por ejemplo, Chaco es muy útil para la visualización de datos en tiempo real), EPD / Canopy es probablemente una mejor opción. La versión académica tiene una mayor cantidad de paquetes en la instalación base y muchos más en el repositorio. Anaconda también incluye Chaco.