Quels sont les avantages/inconvénients relatifs de divers Python bundles (EPD/Anaconda) par rapport à une installation manuelle?
J'ai installé EPD Academic et je n'ai aucun problème avec. Il fournit plus de paquets dont je pense avoir besoin, et il est très facile de mettre à jour à l'aide de enpkg enstaller. La licence académique EPD nécessite toutefois un renouvellement annuel et la version gratuite ne permet pas les mises à jour aussi facilement.
Pour le moment, je n’utilise vraiment que quelques paquets tels que Pandas , NumPy , SciPy , matplotlib , - IPython , Statsmodels et leurs dépendances respectives.
Pour une utilisation aussi limitée, suis-je mieux avec une installation manuelle et pip install --upgrade 'package'
ou les offres groupées offrent-elles autre chose?
Mise à jour 2015 : De nos jours, je recommande toujours Anaconda. Il inclut beaucoup de Python packages pour l'informatique scientifique, la science des données, le développement Web, etc.). Il fournit également un outil d'environnement supérieur, conda
, qui permet de basculer facilement d'un environnement à l'autre. même entre Python 2 et 3. Il est également mis à jour très rapidement dès qu'une nouvelle version d'un paquet est publiée, et vous pouvez simplement faire conda update packagename
pour le mettre à jour.
Réponse originale ci-dessous :
Sous Windows, ce qui est compliqué, c'est de compiler les paquets mathématiques. Je pense donc qu'une installation manuelle est une option viable uniquement si vous êtes intéressé uniquement par Python
, sans autres paquets.
Il vaut donc mieux choisir EPD (maintenant Canopy) ou Anaconda.
Anaconda contient environ 270 packages, dont le plus important pour la plupart des applications scientifiques et de l'analyse de données, à savoir, NumPy , SciPy , Pandas , - IPython , matplotlib , Scikit-learn . Donc, si cela vous suffit, je choisirais Anaconda.
Au lieu de cela, si vous êtes intéressé par d'autres packages, et plus encore si vous utilisez l'un des packages Enthought ( Chaco par exemple est très utile pour la visualisation de données en temps réel), alors EPD/Canopy est probablement un meilleur choix. . La version Academic comporte un plus grand nombre de packages dans l’installation de base et beaucoup plus dans le référentiel. Anaconda comprend également Chaco.
J'ai essayé diverses distributions Windows au cours de la dernière année, en essayant de trouver une solution pour mon environnement de travail (derrière un proxy, mais sans accès à la configuration du proxy).
Voici mon retour d'expérience:
EPD/Canopy: Nous avions une licence EPD, mais elle était ancienne et nous ne pouvions pas la mettre à jour en raison de la situation étrange des mandataires. Afin d'ajouter des packages (tels que la version récente de xlrd/xlwt ), j'ai compilé à partir du source. Pour mettre à jour SciPy et NumPy , j'ai utilisé le programme d'installation précompilé de http://www.lfd.uci.edu/~gohlke/pythonlibs/ , mais ça bousillerait parfois la compatibilité. J'aimais avoir un Py2exe et Cython entièrement configuré, et tout fonctionnait parfaitement.
Après un certain temps, j'ai essayé d'installer la version gratuite de Canopy, mais il lui manquait Cython et py2exe et certains packs avancés spécifiques dont j'avais besoin, je ne l'ai donc jamais vraiment utilisée. Certains de mes collègues ont acheté la licence complète de Canopy, mais nous ne savons toujours pas comment ils vont mettre à jour ...
Python (x, y): Ne voulant pas lutter avec des licences, j'ai installé Python (x, y) à la maison. Le seul inconvénient que j’ai remarqué à l’heure actuelle est que l’installation standard nécessite de sélectionner les packages que vous souhaitez. C'est un bon et un mauvais point, car je ne peux pas être sûr que mes clients auront exactement la même configuration que celle que j'ai lors de l'installation. (La suite d'outils Enthought peut être installée en Python (x, y).) Après avoir utilisé Python (x, y) pendant un moment, je viens de remarquer que j'ai installé la version 32 bits. Bien que ce ne soit pas clair sur leur site Web, il semble qu'ils ne disposent pas d'une version 64 bits à compter de juillet 2015. Je vais la désinstaller et obtenir une distribution 64 bits.
Anaconda: Quand j'ai écrit ceci pour la première fois, Anaconda ne semblait pas encore avoir assez de paquets. Quelques années plus tard, cela semble beaucoup mieux, je vais essayer!
Manuel: Afin d’éviter les problèmes de compatibilité de version avec notre ancienne version EPD, j’ai fini par utiliser l’installation manuelle Python et ajout de paquets supplémentaires à partir du site Web LFD (lien ci-dessus). Cela fonctionne très bien, mais je suggérerais quand même Canopy à un nouvel utilisateur qui a besoin de paquets avancés (comme GDAL ou - PyFITS ).
Résumé: Si vous optez pour Canopy, obtenez la licence complète (académique ou achetée). Sinon, allez avec Python (x, y), ça finira par être pareil.
Sur Ubuntu: Pas besoin de distribution. Tout cela est relativement récent (+/- 6 mois est tolérable) et pré-compilé. Vous avez juste besoin d'exécuter Sudo apt-get install python python-scipy
et c'est là! La plupart des packages avancés sont également disponibles.
Les autres réponses couvrent assez bien le terrain, alors je voudrais juste faire une remarque sur un aspect particulier que personne n’a encore mentionné. C'est probablement une niche, mais cela peut potentiellement faire ou défaire Anaconda ou Canopy pour certaines personnes sous les systèmes Linux:
Anaconda Python utilisent le mode Unicode UCS4, tandis que Enthought Canopy utilise UCS2.
Cela signifie concrètement que si vous vous basez sur des extensions que vous ne pouvez pas compiler vous-même pour quelque raison que ce soit (par exemple, des bibliothèques propriétaires pré-compilées), si elles ne sont pas construites pour un Python version avec le même mode, vous risquez tôt ou tard de rencontrer des erreurs qui ressemblent à undefined symbol: PyUnicodeUCS4_AsUTF8String
.
Selon PEP 051 , UCS4 semble actuellement plus populaire et recommandé. De plus, tous les problèmes de compatibilité UCS ne semblent affecter que les versions 2.x et <3.3.