Como posso usar o Homebrew para instalar o Python 2 e 3 no Mac?
146
Eu preciso ser capaz de alternar entre Python 2 e 3. Como faço isso usando o Homebrew, pois não quero mexer no caminho e ter problemas. No momento, tenho o 2.7 instalado pelo Homebrew.
Você pode querer mudar a pergunta para retirar a referência homebrew uma vez que não é necessariamente um requisito para realizar seu objetivo (ver minha resposta abaixo, por exemplo stackoverflow.com/a/49091638/2923369 )
Para habilitar o pyenv no seu shell Bash, você precisa executar:
$ eval "$(pyenv init -)"
Para fazer isso automaticamente no Bash na inicialização, adicione essa linha ao seu ~/.bash_profile. 1
Uso:
Depois de instalar o pyenv e ativá-lo, você pode instalar versões diferentes do python e escolher qual delas pode ser usada. Exemplo:
$ pyenv install 2.7.5
Você pode verificar as versões com as quais instalou:
$ pyenv versions
E você pode alternar entre versões python com o comando:
$ pyenv global3.3.1
Além disso, você pode definir uma versão python para o diretório atual com:
$ pyenv local 3.5.2
Você pode verificar executando python --version:
$ python --version
Python3.5.2
1 O Homebrew costumava instruí-lo a fazer isso após a instalação do pyenv, mas a mensagem foi removida . Para o Zsh e outras conchas, as etapas precisas podem ser diferentes.
Esta é a solução mais simples. Actualmente usar esta para comutação entre três e Python 2.7.x
Naz Mir
3
Se eu já instalei o python 2.7 por meio do homebrew , há algo que eu deva cuidar do pyenv ? Posso instalar outro python 2.7 através do pyenv ?
Drake Guan
3
Sim, você pode instalar outro python 2.7 através do pyenv. Ele instalará esse python nas versões $ PYENV_ROOT /. O outro python 2.7 instalado através do homebrew pode aparecer como "sistema" quando você executa "versões pyenv".
moliware
5
Eu tive que adicionar eval "$(pyenv init -)"ao meu .profile / .zshrc para fazer o pyenv funcionar.
Rohmer
5
@ilciavo, você pode ter que adicionar eval "$(pyenv init -)"ao seu ~ / .bash_profile
Jojanzing
77
Você pode ter as duas versões instaladas ao mesmo tempo.
Para Homebrew> = 1.5.0:
Desde 1º de março de 2018, a pythonfórmula será atualizada para o Python 3.x, enquanto uma nova python@2fórmula será adicionada para o Python 2.7, especificamente.
Agora, você terá as duas versões instaladas em sua máquina. Quando você deseja usar a versão 2, use o pythonexecutável. Quando você quiser usar a versão 3, use o python3executável.
obrigado pela atualização! Eu segui uma rota semelhante, mas tive problemas em ter que definir PYTHONPATHa cada alteração ... alguma idéia? além disso, pyenvé ótimo.
meduz
9
Além disso, observe que, tendo python2 e python3 lado a lado, esse python aponta para python2 e python3 aponta para python3 conforme o esperado. No entanto, um grande problema é que o pip não aponta para o pip2 como seria de esperar. Na verdade, ele aponta para o pip3 (assim como o pip3 obviamente). Para usar o pip2, use explicitamente o pip2. Um pouco inconsistente com o sufixo não número de ponto pitão a 2, mas não o sufixo número de pontos pip a 3.
JD
5
Isso atrapalha os executáveis comuns, como o pip. O python3 substituirá o python2 pip nesse caso e esse será o comando "pip" padrão
kissgyorgy 15/16
1
Em resposta ao comentário do @ kissgyorgy: eu tive esse problema, o último comentário sobre esse problema o resolveu para mim github.com/Homebrew/legacy-homebrew/issues/50607 , executando e python3 -m pip install -U --force-reinstall pipdepois refazendopython -m pip install -U --force-reinstall pip as pipreferências ao Python 2 pip.
Harry
11
Atualmente, o Homebrew fornece duas fórmulas diferentes para Python 2 e 3. brew install pythoninstala python3 e brew install python@2instala python2. Mais detalhes nos documentos do Homebrew:
Como alternativa, você provavelmente pode simplesmente digitar "python3" para executar a versão mais atual do python3.xe "python" ou "python2" para executar a versão 2.x mais recente instalada.
Existem maneiras de usar os dois, mas a solução mais simples hoje é usar pyenv . O pyenv permite alternar facilmente entre as versões. Aqui está o que eu fiz para configurar:
Era uma vez uma linguagem de programação.
Havia muitas versões.
Então, as pessoas escreviam um gerenciador de versões para ele.
Para alternar entre versões de projetos.
Diferentes, antigas, novas.
Então vieram mais linguagens de programação
Então vieram mais gerenciadores de versão
E muitos comandos para eles
Eu instalei muitos deles
, aprendi muitos comandos
Então eu disse, apenas mais um gerenciador de versão,
que eu escreverei
Um gerenciador de versões tão extensível
para o qual qualquer um pode criar um plug-in
Para suportar seu idioma favorito
Não é mais necessário instalar mais gerenciadores de versão
Ou aprender mais comandos
Parece-me que essas não são ferramentas concorrentes, mas a mesma ferramenta, implementada uma vez (e às vezes mais de uma vez) por idioma. É como por que precisamos de algo como o LSP também, IMHO.microsoft.github.io/language-server-protocol/overview
Matt Schlobohm
1
Eu pensei que tinha o mesmo requisito - para alternar entre versões do Python -, mas consegui tudo o que precisava com apenas o Python3.6 construindo a partir do código-fonte em vez de usá-lo homebrew.
git clone https://git.<theThingYouWantToInstall>
Dependendo do repositório, verifique se o arquivo MAKE já está configurado para esta opção.
Respostas:
Eu usaria o pyenv. Você pode instalá-lo:
Para habilitar o pyenv no seu shell Bash, você precisa executar:
Para fazer isso automaticamente no Bash na inicialização, adicione essa linha ao seu
~/.bash_profile
. 1Uso:
Depois de instalar o pyenv e ativá-lo, você pode instalar versões diferentes do python e escolher qual delas pode ser usada. Exemplo:
Você pode verificar as versões com as quais instalou:
E você pode alternar entre versões python com o comando:
Além disso, você pode definir uma versão python para o diretório atual com:
Você pode verificar executando
python --version
:1 O Homebrew costumava instruí-lo a fazer isso após a instalação do pyenv, mas a mensagem foi removida . Para o Zsh e outras conchas, as etapas precisas podem ser diferentes.
fonte
eval "$(pyenv init -)"
ao meu .profile / .zshrc para fazer o pyenv funcionar.eval "$(pyenv init -)"
ao seu ~ / .bash_profileVocê pode ter as duas versões instaladas ao mesmo tempo.
Para Homebrew> = 1.5.0:
Desde 1º de março de 2018, a
python
fórmula será atualizada para o Python 3.x, enquanto uma novapython@2
fórmula será adicionada para o Python 2.7, especificamente.Veja o anúncio de alterações aqui ou o documento final sobre o uso do Homebrew for Python aqui .
Para Homebrew mais antigo:
Para Python 2.x:
Para Python 3.x:
Agora, você terá as duas versões instaladas em sua máquina. Quando você deseja usar a versão 2, use o
python
executável. Quando você quiser usar a versão 3, use opython3
executável.fonte
PYTHONPATH
a cada alteração ... alguma idéia? além disso,pyenv
é ótimo.python3 -m pip install -U --force-reinstall pip
depois refazendopython -m pip install -U --force-reinstall pip
aspip
referências ao Python 2pip
.Atualmente, o Homebrew fornece duas fórmulas diferentes para Python 2 e 3.
brew install python
instala python3 ebrew install python@2
instala python2. Mais detalhes nos documentos do Homebrew:https://docs.brew.sh/Homebrew-and-Python
Se você atualmente possui o 2.x instalado via Homebrew, o Homebrew enviará uma mensagem como:
Se você executar:
você deve ser capaz de fazer:
e
Para ver quais versões do Python 2.xe 3.x instalaram.
fonte
Como alternativa, você provavelmente pode simplesmente digitar "python3" para executar a versão mais atual do python3.xe "python" ou "python2" para executar a versão 2.x mais recente instalada.
fonte
Existem maneiras de usar os dois, mas a solução mais simples hoje é usar pyenv . O pyenv permite alternar facilmente entre as versões. Aqui está o que eu fiz para configurar:
PASSO 1:
Remova todos os pythons do seu mac
Remova o seguinte de
~/.bash_profile
e também o seguinte de
~/.bashrc
PASSO 2 :
Instale o pyenv e as versões python necessárias
PASSO 3 :
adicionar
pyenv init
abash_profile
oubashrc
PASSO 4 :
Verifique o que foi instalado
PASSO 5:
Escolha um padrão
Quando um projeto precisar de uma versão mais antiga, basta acessar sua pasta raiz e executar
fonte
Use asdf !
https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins
fonte
Eu pensei que tinha o mesmo requisito - para alternar entre versões do Python -, mas consegui tudo o que precisava com apenas o Python3.6 construindo a partir do código-fonte em vez de usá-lo
homebrew
.git clone https://git.<theThingYouWantToInstall>
Dependendo do repositório, verifique se o arquivo MAKE já está configurado para esta opção.
fonte
Consegui acessar https://www.python.org/downloads/mac-osx/ e baixar o último python. Ele instalou ao lado do python atual no meu sistema.
fonte
Ok, eu estava lutando com minha instalação de fermentação do Python3, porque não tinha o pip3
e eu fiz
e instalei o Python regular 3.6.2 da distribuição oficial e, em seguida, tive o pip3 e todos os componentes estavam ok.
fonte