¿Cómo puedo usar Homebrew para instalar Python 2 y 3 en Mac?
146
Necesito poder alternar entre Python 2 y 3. ¿Cómo hago eso usando Homebrew ya que no quiero meterme en el camino y meterme en problemas? En este momento tengo 2.7 instalado a través de Homebrew.
Es posible que desee cambiar la pregunta para eliminar la referencia homebrew, ya que no es necesariamente un requisito para lograr su objetivo (consulte mi respuesta a continuación, por ejemplo stackoverflow.com/a/49091638/2923369 )
Para habilitar pyenv en su shell Bash, debe ejecutar:
$ eval "$(pyenv init -)"
Para hacer esto automáticamente para Bash al inicio, agregue esa línea a su ~/.bash_profile. 1
Uso:
Una vez que haya instalado pyenv y lo haya activado, puede instalar diferentes versiones de python y elegir cuál puede usar. Ejemplo:
$ pyenv install 2.7.5
Puede verificar las versiones que ha instalado con:
$ pyenv versions
Y puede cambiar entre versiones de Python con el comando:
$ pyenv global3.3.1
También puede establecer una versión de Python para el directorio actual con:
$ pyenv local 3.5.2
Puede verificar ejecutando python --version:
$ python --version
Python3.5.2
1 Homebrew solía indicarte que hagas esto al instalar pyenv, pero el mensaje fue eliminado . Para Zsh y otros proyectiles, los pasos precisos pueden ser diferentes.
Esta es la solución más simple. Actualmente uso esto para cambiar entre Python 3 y 2.7.x
Naz Mir
3
Si ya instalé python 2.7 a través de homebrew , ¿hay algo que deba encargarme de usar pyenv ? ¿Puedo instalar otro python 2.7 a través de pyenv ?
Drake Guan
3
Sí, puede instalar otro python 2.7 a través de pyenv. Instalará esa pitón en $ PYENV_ROOT / versiones. El otro python 2.7 instalado a través de homebrew puede aparecer como "sistema" cuando ejecuta "versiones pyenv".
moliware
55
Tuve que agregar eval "$(pyenv init -)"a mi .profile / .zshrc para que pyenv funcionara.
Rohmer
55
@ilciavo, puede que tenga que agregar eval "$(pyenv init -)"a su ~ / .bash_profile
Jojanzing
77
Puede tener ambas versiones instaladas al mismo tiempo.
Para Homebrew> = 1.5.0:
Desde el 1 de marzo de 2018, la pythonfórmula se actualizará a Python 3.x, mientras python@2que se agregará una nueva fórmula para Python 2.7, específicamente.
Ahora, tendrá ambas versiones instaladas en su máquina. Cuando quiera usar la versión 2, use el pythonejecutable. Cuando desee usar la versión 3, use el python3ejecutable.
¡gracias por la actualización! Seguí una ruta similar pero tuve problemas para configurar PYTHONPATHcada cambio ... ¿alguna idea? Además de eso, pyenves genial.
Meduz
9
Además, tenga en cuenta que tener python2 y python3 uno al lado del otro, que python apunta a python2 y python3 apunta a python3 como se esperaba. Sin embargo, un gran problema es que pip no apunta a pip2 como es de esperar. En realidad apunta a pip3 (como pip3 obviamente). Para usar pip2, explícitamente use pip2. Un poco inconsistente tener el sufijo no numérico para python apunta a 2 pero el sufijo no numérico para pip apunta a 3.
JD
55
Esto arruina ejecutables comunes como pip. python3 sobrescribirá python2 pip en este caso y ese será el comando "pip" predeterminado
kissgyorgy
1
En respuesta al comentario de @ kissgyorgy: tuve ese problema, el último comentario sobre este problema lo resolvió para mí github.com/Homebrew/legacy-homebrew/issues/50607 , ejecutándolo python3 -m pip install -U --force-reinstall pipy python -m pip install -U --force-reinstall pipvolviendo a pipreferirme a Python 2 pip.
Harry
11
Actualmente, Homebrew proporciona dos fórmulas diferentes para Python 2 y 3. brew install pythoninstala python3 e brew install python@2instala python2. Más detalles en documentos Homebrew:
Alternativamente, probablemente pueda ingresar "python3" para ejecutar su versión más reciente de python3.xy "python" o "python2" para ejecutar la última versión 2.x instalada.
Hay formas de usar ambos, pero la solución más simple hoy en día es usar pyenv . pyenv permite cambiar fácilmente entre versiones. Esto es lo que hice para configurar:
Había una vez un lenguaje de programación.
Había muchas versiones del mismo.
Entonces la gente escribió un administrador de
versiones para cambiar de versión para proyectos.
Diferente, antiguo, nuevo.
Luego vinieron más lenguajes de programación.
Entonces vinieron más administradores de versiones
y muchos comandos para ellos.
Instalé muchos de ellos
, aprendí muchos comandos
Entonces dije, solo un administrador de versiones más
que escribiré
Un administrador de versiones tan ampliable
para que cualquiera pueda crear un complemento
Para admitir su idioma favorito
No más instalar más administradores de versiones
O aprender más comandos
Me parece que estas no son herramientas de la competencia, sino la misma herramienta, implementada una vez (y a veces más de una vez) por idioma. Algo así como por qué necesitamos algo como el LSP también, en mi humilde opinión. microsoft.github.io/language-server-protocol/overview
Matt Schlobohm
1
Pensé que tenía el mismo requisito: moverme entre las versiones de Python, pero logré todo lo que necesitaba con solo Python3.6 construyendo desde la fuente en lugar de usar homebrew.
git clone https://git.<theThingYouWantToInstall>
Dependiendo del repositorio, verifique si ya hay un archivo MAKE configurado para esta opción.
Respuestas:
Yo usaría pyenv. Puedes instalarlo:
Para habilitar pyenv en su shell Bash, debe ejecutar:
Para hacer esto automáticamente para Bash al inicio, agregue esa línea a su
~/.bash_profile
. 1Uso:
Una vez que haya instalado pyenv y lo haya activado, puede instalar diferentes versiones de python y elegir cuál puede usar. Ejemplo:
Puede verificar las versiones que ha instalado con:
Y puede cambiar entre versiones de Python con el comando:
También puede establecer una versión de Python para el directorio actual con:
Puede verificar ejecutando
python --version
:1 Homebrew solía indicarte que hagas esto al instalar pyenv, pero el mensaje fue eliminado . Para Zsh y otros proyectiles, los pasos precisos pueden ser diferentes.
fuente
eval "$(pyenv init -)"
a mi .profile / .zshrc para que pyenv funcionara.eval "$(pyenv init -)"
a su ~ / .bash_profilePuede tener ambas versiones instaladas al mismo tiempo.
Para Homebrew> = 1.5.0:
Desde el 1 de marzo de 2018, la
python
fórmula se actualizará a Python 3.x, mientraspython@2
que se agregará una nueva fórmula para Python 2.7, específicamente.Vea el anuncio de cambios aquí o el documento final sobre el uso de Homebrew para Python aquí .
Para Homebrew más viejo:
Para Python 2.x:
Para Python 3.x:
Ahora, tendrá ambas versiones instaladas en su máquina. Cuando quiera usar la versión 2, use el
python
ejecutable. Cuando desee usar la versión 3, use elpython3
ejecutable.fuente
PYTHONPATH
cada cambio ... ¿alguna idea? Además de eso,pyenv
es genial.python3 -m pip install -U --force-reinstall pip
ypython -m pip install -U --force-reinstall pip
volviendo apip
referirme a Python 2pip
.Actualmente, Homebrew proporciona dos fórmulas diferentes para Python 2 y 3.
brew install python
instala python3 ebrew install python@2
instala python2. Más detalles en documentos Homebrew:https://docs.brew.sh/Homebrew-and-Python
Si actualmente tiene 2.x instalado a través de Homebrew, Homebrew le dará un mensaje como:
Si tu corres:
deberías poder hacer:
y
Para ver qué versiones de Python 2.xy 3.x están instaladas.
fuente
Alternativamente, probablemente pueda ingresar "python3" para ejecutar su versión más reciente de python3.xy "python" o "python2" para ejecutar la última versión 2.x instalada.
fuente
Hay formas de usar ambos, pero la solución más simple hoy en día es usar pyenv . pyenv permite cambiar fácilmente entre versiones. Esto es lo que hice para configurar:
PASO 1:
Elimina todas las pitones de tu mac
Eliminar lo siguiente de
~/.bash_profile
y también lo siguiente de
~/.bashrc
PASO 2 :
Instale pyenv y las versiones de python que necesita
PASO 3 :
añadir
pyenv init
abash_profile
obashrc
PASO 4 :
Comprueba lo que se instaló
PASO 5:
Elige un valor predeterminado
Cuando un proyecto necesita una versión anterior, simplemente vaya a su carpeta raíz y ejecute
fuente
Use asdf !
https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins
fuente
Pensé que tenía el mismo requisito: moverme entre las versiones de Python, pero logré todo lo que necesitaba con solo Python3.6 construyendo desde la fuente en lugar de usar
homebrew
.git clone https://git.<theThingYouWantToInstall>
Dependiendo del repositorio, verifique si ya hay un archivo MAKE configurado para esta opción.
fuente
Pude simplemente ir a https://www.python.org/downloads/mac-osx/ y descargar la última versión de Python. Se instaló junto a Python actual en mi sistema.
fuente
De acuerdo, estaba luchando con mi instalación de Python3, porque no tenía pip3
y así lo hice
e instalé el Python 3.6.2 regular de la distribución oficial y luego tuve pip3 y todos los componentes estaban bien.
fuente