A brew upgradeactualizado mi sistema Python a Python 3.7. Desafortunadamente, Python 3.7 rompe otro software que necesito usar (incluidos, entre otros, Ansible). Me imagino que estos problemas se resolverán en la próxima semana más o menos, pero mientras tanto, me gustaría volver a Python 3.6.5.x
A brew info pythonmuestra que las versiones anteriores todavía están instaladas y no depuradas:
➜ brew info python
python: stable 3.7.0 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.6.5 (4,825 files, 100.8MB)
  Poured from bottle on 2018-03-31 at 20:21:57
/usr/local/Cellar/python/3.6.5_1 (4,788 files, 99.9MB)
  Poured from bottle on 2018-06-20 at 16:00:26
/usr/local/Cellar/python/3.7.0 (4,869 files, 103.3MB)
  Poured from bottle on 2018-07-01 at 19:30:37
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb
Varios brew linky brew installcomandos sugeridos por otros sitios no parecen funcionar:
➜ brew link python@3.6.5
Error: No such keg: /usr/local/Cellar/python@3.6.5
➜ brew link python@3.6.5_1
Error: No such keg: /usr/local/Cellar/python@3.6.5_1
➜ brew install python@3.6.5
Error: No available formula with the name "[email protected]" 
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
==> Searching local taps...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

Respuestas:
Si todavía tiene las versiones anteriores disponibles, puede usar
fuente
brew switch ...comando para volver a 3.7?python3 -m venv --copies venvcopias de los archivos de Python en lugar de crear enlaces simbólicos, lo que evita que se rompan al actualizar su versión de Python.Error: python does not have a version "3.6.5_1" in the Cellar. python installed versions: 3.7.0Si no tiene una versión anterior para cambiar, puede instalar desde la fórmula anterior de esta manera:
Actualización 2019-10
- aviso de ignorar dependencias
En caso de que esté utilizando el
--ignore-dependenciesindicador para superar elrecursive dependencyerror, puede darle el siguiente error cuando lo hagapip3 installdespués de dicha instalación:Una solución alternativa puede ser instalar primero sus dependencias (todo excepto
sphinx-doc)Tenga en cuenta que necesita
openssly NO[email protected]cuál es la última dependencia en homebrew python 3.7.4_1fuente
brew unlink pythonhace.brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb.--ignore-dependenciesno funciona debido a sphinx, comente la dependencia en sphinx y vuelva aError: python contains a recursive dependency on itself: python depends on sphinx-doc sphinx-doc depends on pythonDos opciones
Para recuperar una versión de Python previamente instalada:
Use
brew info pythonpara ver lo que ha instalado previamentePara realizar una instalación limpia de Python 3.6.5 use:
Respuesta larga
Hay dos fórmulas para instalar Python con Homebrew:
python@2ypython.El primero es para Python 2 y el segundo para Python 3.
Nota: Puede encontrar respuestas obsoletas en la web donde se menciona
python3como el nombre de la fórmula para instalar Python versión 3. ¡Ahora es justopython!De forma predeterminada, con estas fórmulas puede instalar la última versión de la versión principal correspondiente de Python. Por lo tanto, no puede instalar directamente una versión menor como 3.6.
Solución:
Con
brew, puede instalar un paquete utilizando la dirección de la fórmula, por ejemplo en un repositorio de git.O específicamente para Python 3
La dirección que debe especificar es la dirección de la última confirmación de la fórmula (python.rb) para la versión deseada. Puede encontrar el identificador de commint mirando el historial de homebrew-core / Formula / python.rb
https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb
Python> 3.6.5
En el enlace de arriba no encontrarás una fórmula para una versión de Python anterior a 3.6.5. Después de que los encargados del repositorio (oficial) lanzaron Python 3.7, solo envían actualizaciones a la receta de Python 3.7.
Como se explicó anteriormente, con homebrew solo tiene Python 2 (python @ 2) y Python 3 (python), no hay una fórmula explícita para Python 3.6 .
Aunque esas actualizaciones menores son irrelevantes en la mayoría de los casos y para la mayoría de los usuarios, buscaré si alguien ha hecho una fórmula explícita para 3.6.
fuente
Siguiendo el Paso # 3: Downgrade Python 3.7 a Python 3.6 en macOS Mojave aquí funcionó para mí: https://www.pyimagesearch.com/2019/01/30/macos-mojave-install-tensorflow-and-keras-for-deep -aprendizaje/
fuente
Puede retroceder temporalmente
homebrew-corey establecer laHOMEBREW_NO_AUTO_UPDATEvariable para mantenerlo en su lugar:No recomiendo hacer retroceder permanentemente homebrew-core, ya que se perderán los parches de seguridad, pero es útil para fines de prueba.
También puede extraer versiones antiguas de fórmulas homebrew en su propio toque (tap_owner / tap_name) usando el
brew extractcomando:fuente
brew link [email protected]. Aunquepyenves otra opción también.No soy un experto en esto, pero tuve el mismo problema. Esto es lo que funcionó para mí:
$ brew unlink python $ brew uninstall --ignore-dependencies python3 $ brew uninstall pipenv then from https://www.python.org/downloads/ installed python 3.6.6 $ brew install pipenvfuente