Verwalten Sie jede Python-Version mit Homebrew

Python bietet ein großartiges Tool zum Erstellen geschlossener Umgebungen mit den Namen virtualenv und tox. Es gibt ein elegantes Tool namens latest /), das mehrere Testversionen automatisiert. (Persönliche Subjektivität) Um diese Tools effektiv handhaben zu können, müssen mehrere Python-Versionen gleichzeitig vorhanden sein. (Nun, die Koexistenz mehrerer Versionen ist nicht auf Python beschränkt, es scheint eine Anforderung zu sein, die entweder Ruby oder Perl sein kann, und ich denke, dass Sie mit ein wenig Recherche eine Bibliothek dafür finden können.) Software zur einfachen Erfüllung dieser Anforderung ist pythonbrew, pythonz, [pyenv](https :: //github.com/yyuu/pyenv) und so weiter.

Aber ich wage es, Homebrew zu benutzen

Irgendwie ist der Grund (lacht). Wenn ich Sie dazu zwinge, möchte ich die Anzahl der Verwaltungstools nicht zu stark erhöhen. Mit zunehmender Anzahl solcher Tools wird es schwierig zu verstehen, welche, warum und wie sie verwaltet werden, und die Konfigurationsdateien (hauptsächlich .bashrc / .zshrc) werden ebenfalls erweitert.

Da Homebrew ein Allzweck-Paketmanager ist, bietet es natürlich andere Software als Python und (wie ich kürzlich erfahren habe) Homebrew-Cask. GUI-Apps können ebenfalls verwaltet werden. Wenn Sie es so weit wie möglich zusammenstellen, ist es einfacher zu verwalten.

Es gibt eine Nebenversion von Formula. Das ist eine Lüge.

Das aktuelle Homebrew-Repository HEAD unterstützt nur die neuesten Versionen von Python 2 und 3 (2.7, 3.4). Andere Versionen können nicht installiert werden.

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/

#Aber ich habe eine alte Version der Formel ... wann und wo habe ich sie bekommen ...

% brew list | grep python
python
python26
python3
python31
python32

Es gibt Repositorys, die Formeln für verschiedene Softwareversionen bereitstellen, jedoch nur Python. Wieso ist es so… https://github.com/Homebrew/homebrew-versions

Erstellen Sie Ihr eigenes Homebrew-Repository

Deshalb habe ich beschlossen, mit jeder Version von Formula ein benutzerdefiniertes Homebrew-Repository zu erstellen.

https://github.com/FGtatsuro/homebrew-custom

Das Erstellen / Verwenden eines Repositorys ist sehr einfach

  1. Erstellen Sie auf github ein Repository mit dem Namen homebrew- (z. B. Homebrew-custom).
  2. Registrieren Sie das erstellte Repository mit Brew Tap (Github-Benutzername) / (Repository-Name). (FGtatsuro / custom in diesem Repository)
  3. Verwenden Sie "Brew Update", um die Formel in das registrierte Repository zu bekommen.

Jede Formel basiert auf der ursprünglichen Formel ("python.rb", "python3.rb") mit den folgenden Änderungen.

  1. Verwenden Sie während der Installation "make alt install" anstelle von "make install". Dies verhindert, dass symbolische Links wie "Python", "Python3" unter "bin" (Standard: "/ usr / local / bin /") von Homebrew erstellt werden. (Es wird ein Link erstellt, der auch kleinere Versionen wie "python3.3" enthält.)
  2. pip und easy_install werden zusammen installiert, aber auch die symbolischen Links, die keine Nebenversionen enthalten (z. B. "Pip", "pip2"), werden nicht erstellt.

Sowohl 1 als auch 2 sollen verhindern, dass eine unbeabsichtigte Version ausgeführt wird, da bei der Installation mehrerer Versionen symbolische Links überschrieben werden. Ich denke, das Löschen des Python-Links hat Vor- und Nachteile, aber ich verwende auch die mit virtualenv erstellte Umgebung für meine übliche Umgebung, insbesondere weil diese symbolischen Links in dieser Umgebung erstellt werden. Es spielt keine Rolle. Wenn nicht, ist es eine gute Idee, zu entscheiden, welche Version Sie in der Hauptversion verwenden möchten, und dann einen neuen symbolischen Link zu erstellen.

python


% ln -s /usr/local/bin/python34 /usr/local/bin/python

Die übliche Reaktion der Person neben mir ist ...

"Wow, schreib einfach ww MakeFile, nicht wahr? Www? Bedeutet das, es mit Homebrew zu verwalten?" (Ich habe das Gefühl, dass ich das gesagt habe)

Nachtrag (26.05.2014)

Es scheint, dass "Python", "Python3" aufgrund der Abhängigkeit einer anderen Formel angefordert werden kann, und zu diesem Zeitpunkt steht es in Konflikt mit "Python27", "Python34", das in das benutzerdefinierte Repository gestellt wird. Daher ist es sicherer, die neueste Version aus dem ursprünglichen Repository zu verwenden.

Recommended Posts

Verwalten Sie jede Python-Version mit Homebrew
Überprüfen Sie die Version mit Python
Verwalten Sie die Python-Umgebung mit mehreren Versionen mit Pythonz, virtualenv
Verwalten Sie Cron-Jobs mit Python
Verwalten Sie die Python-Umgebung mit virtualenv
Geben Sie die Python-Version mit virtualenv an
Veröffentlichen Sie Ihre eigene Python-Bibliothek auf Homebrew
Verwalten Sie mehrere Python-Versionen mit Update-Alternativen (Ubuntu)
Statistik mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
[Python] Jeder Hash
Bingo mit Python
Zundokokiyoshi mit Python
PYTHON2.7 64-Bit-Version
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Schreiben wir FizzBuzz mit einem Fehler: Python-Version
Ich wollte Python 3.4.3 mit Homebrew + pyenv installieren
[Rust / Python] Behandle Numpy mit PyO3 (Version August 2020)
[Verbesserte Version] Skript zur Überwachung der CPU mit Python
Verwalten Sie AWS mit der Python-Bibliothek Boto
Installieren Sie Python 3 unter MacOS Catalina (nur mit Homebrew)
Verwalten Sie mehrere Kontextmanager zusammen mit Python contextlib.ExitStack
Zusammenfassung der Kernel / Python-Version für jede Debian-Version
Beachten Sie, dass von Homebrew installiertes Vim nicht mit dem Python 3.8-Fehler startet
Löse "AtCoder Version! Arimoto (Anfänger)" mit Python!
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Scraping in Python (Vorbereitung)
Text Mining mit Python ① Morphologische Analyse (re: Linux-Version)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Serielle Kommunikation mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Einführung in Boost.python mit Homebrew
Homebrew Python Umgebung Konstruktion
Scraping mit Python + PhantomJS
Erstellen Sie eine Python-Version der Lambda-Funktion (+ Lambda-Schicht) mit Serverless Framework