web-dev-qa-db-fra.com

Comment puis-je installer plusieurs versions de Python sur le dernier OS X et les utiliser en parallèle?

Je souhaite exécuter des tests avec plusieurs versions de Python sous OS X 10.11, notamment:

  • Python 2.6 -?!
  • Python 2.7 - défaut - résolu
  • Python 3.4 -?!
  • Python 3.5 - installé via brassage - fonctionne bien
  • Conda Python 3.5 -?!

Je veux exécuter les tests via tox afin que tox ait besoin de pouvoir les trouver. Malheureusement, il semble que brew ne veuille pas installer la version 3.4 car ils ont ajouté la version 3.5 et je ne veux évidemment pas supprimer la version 3.5.

17
sorin

Ce blog post suggère d'utiliser pyenv avec la detox désirée. La configuration de base avec brew nécessite:

brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper

Ensuite, installez les versions Python souhaitées avec pyenv install [version], plutôt que en installant Python avec brew. Vous pouvez vérifier les versions disponibles en utilisant pyenv versions.

Enfin, pip install detox s'assurera que vous avez installé tox et detox. Ensuite, vous devriez pouvoir spécifier les versions de test souhaitées dans votre tox.ini.

18
user2943160

Je recommande fortement d'utiliser un gestionnaire de paquets tel que Anaconda, https://www.continuum.io/downloads , ce qui facilite grandement l'installation de différents virtual-envs autonomes. 

Par exemple, pour créer un environnement virtuel avec numpy et Python 2.7, utilisez la commande suivante:

conda create --name py2_env numpy python=2.7

Et puis pour passer à cet environnement:

source activate py2_env

2
flybonzai

pyenv est la chose que vous voulez. Cela fonctionne très très bien:

pyenv vous permet de basculer facilement entre plusieurs versions de Python. C'est simple, discret et suit la tradition UNIX d'outils à usage unique qui font bien les choses. Ce projet a été créé à partir de rbenv et Ruby-build, puis modifié pour Python.

https://github.com/pyenv/pyenv

Installez-le via Homebrew:

$ brew update
$ brew install pyenv

Il gère le téléchargement, compilation et installation de divers pythons pour vous, par exemple:

$ pyenv install 3.7.2

Il peut vous montrer les versions que vous avez installées et celles qui sont actives:

$ pyenv versions
  system
  3.6.7
* 3.7.2

Lorsque vous êtes dans un nouveau répertoire de projet, indiquez simplement à pyenv la version de python à utiliser ici:

$ pyenv local 3.6.7  # Because e.g. tensorflow isn't compat. with 3.7 :-(

Vous pouvez définir une version «par défaut» partout ailleurs:

$ pyenv global 3.7.2
1
Dogweather