web-dev-qa-db-fra.com

OS X - Choix entre les environnements Python anaconda et homebrew

J'utilise beaucoup Python sur mon Mac OS X, aussi bien pour les applications numériques que pour le développement Web. J'ai vérifié le nombre d'installations Python que j'avais sur mon ordinateur portable récemment et j'ai été choqué de trouver quatre :

Came with Mac OS X:
/usr/bin/python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin

Installed via Homebrew
/usr/local/bin/python
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin

Installed via Anaconda/Miniconda
~/anaconda/bin/python
Python 2.7.10 |Anaconda 2.3.0 (x86_64)| (default, Oct 19 2015, 18:31:17)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

Came with the downloaded .pkg from python.org
/System/Library/Frameworks/Python.framework/Versions/Current/bin/python
Python 2.7.6 (default, Sep  9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin

J'ai décidé d'unifier tout cela et d'utiliser conda. J'ai supprimé la version Homebrew et le téléchargement de Python.org (conservé celui du système principal). Conda est idéal pour l'informatique numérique, car je peux installer Jupyter/Numpy/Pandas dans l'environnement racine sans avoir à installer virtualenvs pour chaque projet.

Mais maintenant, tout mon flux de travail de développement Web est perturbé. Aucune de mes virtualenvs ne fonctionne, car apparemment on n'est pas censé utiliser conda et virtualenv ensemble. J'ai essayé de créer des environnements de conda à partir du fichier requirements.txt. Un paquet que j'utilisais avec Django était "markdown_deux", qui n'est pas disponible dans le référentiel Conda. J'ai cherché des façons de le construire, mais créer une recette demande beaucoup d'efforts (créer un fichier YAML, etc.)

Quelqu'un at-il trouvé un bon compromis pour cela? Je pense retourner à la version homebrew pour un usage général et écrire un alias pour changer le chemin d'accès à la version conda si nécessaire. Bien que cela nécessite également le suivi de celui que j'utilise maintenant ..

22
user1496984

J'utilise Homebrew Python pour tous mes projets (informatique, développement web).

Conda n'a rien d'extraordinaire, vous pouvez avoir les mêmes packages à la main avec une combinaison de pip et Homebrew science . En fait, c'est encore mieux parce que vous avez plus de contrôle sur ce que vous installez.

Vous ne pouvez utiliser vos virtualenvs que lorsque vous faites du développement Web. Pour les applications numériques, vous voudrez probablement avoir les dernières versions de vos paquets à tout moment.

Si vous voulez mettre à jour tous vos paquets en même temps avec pip, vous pouvez utiliser cette commande:

Sudo -H pip freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 Sudo -H pip install -U
21
Kikohs

Flux de travail que j'ai trouvé le meilleur:

  • Utilisez conda pour la gestion de l'environnement virtuel. Jamais utiliser/installer dans le système python.

  • Utilisez pip pour l'installer dans l'environnement virtuel actif, comme d'habitude.

  • Utilisez conda packages only pour les logiciels difficiles à installer, tels que Qt.

Automatisation/suppléments

  • Utilisez autoenv ou direnv et activez automatiquement les environnements virtuels lorsque vous entrez dans un répertoire en plaçant la commande conda dans le fichier .env ou .envsrc.
2
Rebs