Python a un excellent outil pour créer des environnements fermés appelé virtualenv, tox. Il existe un outil élégant appelé latest /) qui automatise plusieurs versions de test. (Subjectivité personnelle) Afin de gérer efficacement ces outils, il existe une demande de coexistence de plusieurs versions de Python. (Eh bien, la coexistence de plusieurs versions ne se limite pas à Python, cela semble être une exigence qui peut être Ruby ou Perl, et je pense que vous pouvez trouver une bibliothèque pour cela avec un peu de recherche.) Le logiciel permettant de répondre facilement à cette requête est pythonbrew, pythonz, [pyenv](https :: //github.com/yyuu/pyenv) et ainsi de suite.
La raison en est (rires). Si je vous force à dire, je ne veux pas trop augmenter le nombre d'outils de gestion. Au fur et à mesure que le nombre d'outils de ce type augmente, il devient difficile de comprendre lesquels, pourquoi et comment ils sont gérés, et les fichiers de configuration (principalement .bashrc / .zshrc) se développent également.
Puisque Homebrew est un gestionnaire de paquets à usage général, il fournit naturellement des logiciels autres que Python et (comme je l'ai appris récemment) Homebrew-Cask , Les applications GUI peuvent également être gérées. Si vous les assemblez autant que possible, ce sera plus facile à gérer.
Le référentiel Homebrew actuel HEAD ne prend en charge que les dernières versions de Python 2 et 3 (2.7, 3.4), et les autres versions ne peuvent pas être installées.
python
% brew search python
gst-python010 python python3 wxpython zpython
homebrew/apache/mod_python
% brew info python
python: stable 2.7.6 (bottled), HEAD
http://www.python.org
…
% brew info python3
python3: stable 3.4.1 (bottled), HEAD
https://www.python.org/
#Mais j'ai une ancienne version de Formula ... quand et où l'ai-je obtenue ...
% brew list | grep python
python
python26
python3
python31
python32
Il existe des référentiels qui fournissent des formules pour différentes versions de logiciels, mais uniquement pour Python. Pourquoi est-ce ainsi… https://github.com/Homebrew/homebrew-versions
J'ai donc décidé de créer un référentiel Homebrew personnalisé avec chaque version de Formula.
https://github.com/FGtatsuro/homebrew-custom
Créer / utiliser un référentiel est très simple
brew tap (nom d'utilisateur Github) / (nom du référentiel)
. (FGtatsuro / custom
dans ce référentiel)brew update
pour obtenir la formule dans le référentiel enregistré.Chaque formule est basée sur la formule originale (python.rb
, python3.rb
) avec les modifications suivantes.
python
, python3
sous bin
(par défaut:/ usr / local / bin /
) de Homebrew. (Un lien sera créé qui inclut même des versions mineures comme python3.3
.)Pip
, pip2
) ne seront pas créés.Les deux éléments 1 et 2 permettent d'éviter d'exécuter une version non souhaitée en raison d'un écrasement de lien symbolique lorsque plusieurs versions sont installées.
Je pense qu'il y a des avantages et des inconvénients à supprimer le lien python
, mais j'utilise aussi l'environnement créé avec virtualenv dans mon environnement habituel, en particulier parce que ces liens symboliques sont créés dans cet environnement. Cela n'a pas d'importance.
Sinon, c'est une bonne idée de décider quelle version vous souhaitez utiliser dans la version principale, puis de créer un nouveau lien symbolique.
python
% ln -s /usr/local/bin/python34 /usr/local/bin/python
"Wow, écrivez simplement ww MakeFile, n'est-ce pas? Www? Est-ce que ça veut dire le gérer avec Homebrew?" (J'ai l'impression d'avoir dit ça)
Il semble que python
, python3
puisse être demandé en raison de la dépendance d'une autre formule, et à ce moment-là, il entre en conflit avec python27
, python34
mis dans le référentiel personnalisé.
Il est donc plus sûr d'utiliser la dernière version du référentiel d'origine.
Recommended Posts