A maneira certa e errada de configurar o Python 3 Em MacOS
eu tenho mergulhado o meu dedo do pé de volta para o desenvolvimento em Python à medida que me aproximo para ir para PyCon US. (Se você está indo para lá também e quer compartilhar sua história Python, me avise!) Quando instalei um módulo para remendar, recebi um lembrete de que precisava instalar o Python 3 em breve.
$ pip install todoist-python
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won"t be maintained after that date. A future version of pip will drop support for Python 2.7.
So, I did what any of us would do and googled around looking for a guide to update my development environment, which runs on Mac (The macOS operating system, formerly known as OS X)., Para minha surpresa, eu encontrei apenas um punhado de postes StackOverflow, e eles me apontaram para soluções parciais. Aqui está a história completa de como configurar o seu ambiente sem quebrar nada construído no sistema operacional macOS.
1. Instalar o pyenv
Moshe Zadka adverte que fazer isto mal pode resultar numa ideia não fiável de qual o Python está a correr que depende muito de conchas a carregar os pseudónimos. Eu sabia que Moshe estava familiarizado com Python, mas o que eu não sabia é que ele é um autor de muitos tutoriais Python, bem como um próximo livro sobre desenvolvimento Python em macOS., He helped 40 colleagues develop Python safely and consistently on macOS systems following one core principle:
” The basic premise of all Python development is to never use the system Python. Você não quer que o Mac OS X “Python padrão “seja” python3.”Você quer nunca se importar com Python padrão.”
como paramos de nos preocupar com o padrão? Moshe recomenda o uso do pyenv para gerenciar ambientes Python (para um mergulho mais profundo na configuração do pyenv, veja este artigo)., Esta ferramenta gerencia várias versões do Python e é descrita como “simples, discreta, e segue a tradição Unix de ferramentas de propósito único que fazem uma coisa bem.”
Enquanto outras opções de instalação estão disponíveis, a maneira mais fácil para começar é com o Homebrew:
$ brew install pyenv
🍺 /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB
Instalar o Python
Agora vamos instalar a última versão do Python (3.7.,3 como esta escrito):
Definir o padrão global
Agora que o Python 3 é instalado através de pyenv, queremos defini-lo como nosso padrão global de versão para pyenv ambientes:
$ pyenv global 3.7.3
# and verify it worked
$ pyenv version
3.7.3 (set by /Users/mbbroberg/.pyenv/version)
O poder da pyenv vem de seu controle sobre a nossa shell”s path. Para que funcione corretamente, precisamos adicionar o seguinte ao nosso arquivo de configuração (.zshrc para mim, possivelmente .bash_ profile for you):
After that command, our dotfile (.zshrc para zsh or .,bash_ profile for Bash) deve incluir estas linhas:
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
Agora sabemos com certeza que ” estamos a usar o Python 3.7.3 e o pip irá actualizar-se ao seu lado sem qualquer aliasing manual entre versões. Usando a recomendação de Moshe para usar um gerenciador de versões (pyenv) nos permite aceitar facilmente futuras atualizações sem ficar confuso sobre qual Python estamos executando em um dado momento.
sucesso
À medida que se sente confortável com este fluxo de trabalho, pode usar o pyenv para gerir várias versões do Python. Também é essencial, para a gestão de dependências, usar ambientes virtuais., Eu menciono como usar a biblioteca venv construída no artigo, e Moshe recomenda virtualenvwrapper para gerenciar ambientes virtuais.
compreender os tempos de execução em Python
Agora que tem as suas versões em Python fixas, é seguro explorar porque este problema confunde tantas pessoas.
a versão do Python que envia com macOS está bem desactualizada do que o Python recomenda usar para o desenvolvimento. Refletir sobre as horas de execução em Python pode ser um desafio cômico às vezes, como observado pelo XKCD.,
muitos usuários já têm dezenas de intérpretes Python em seu computador, mas não têm idéia de como geri-los de forma eficaz. Muitas vezes, as pessoas apenas baixar a versão mais recente Python, movê-lo para o seu caminho, e chamá-lo de um dia (ou usar brew instalar python3, que faria algo semelhante). Isso pode causar quebras na linha de maneiras frustrantes que podem ser difíceis de resolver.,
o Que NÃO fazer
Minha primeira idéia sobre como fazer Python 3 o padrão do Python no meu sistema foi mover a antiga versão e adicione o novo nome:
O padrão seguido o que o /usr/bin/ geralmente se dá entre as principais versões do Python, mas rapidamente aprendi foi o movimento errado:
$ sudo mv /usr/bin/python /usr/bin/python2
mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted
Felizmente, macOS me protegeu de quebrar algo que eu não compreenda totalmente. Mais pesquisas provam que isso é exatamente o que nós não devemos fazer.
outra coisa para não tentar
agora que sabemos o que não fazer, vamos”ver o que poderíamos fazer., Existem algumas opções quando pensamos em padrões de instalação comuns para aplicações em macOS.
Use Python 3 como o macOS default
Python ‘ s site tem um instalador macOS Python 3 que podemos baixar e usar. Se usarmos a instalação do pacote, um preenchimento python3 estará disponível em /usr / local / bin/.
Aliasing é um must já que o binário Python armazenado em /usr/bin/ can”t pode ser alterado. O que é bom num pseudónimo é que é específico da nossa linha de comandos. Como uso o zsh por padrão, coloco o seguinte no.,ficheiro zshrc:
Se estiver a usar a linha de comandos Bash por omissão, poderá adicionar este mesmo texto ao seu .bashrc:
esta estratégia funciona, mas não é ” ideal para fazer atualizações futuras para Python. Isso significa que temos que nos lembrar de verificar o site e baixar os novos arquivos uma vez que Python não inclui uma forma de linha de comando para atualizar.
Faça com que o Homebrew gerencie Python 3
o projeto Homebrew fornece um gerenciador de pacotes livre e de código aberto para macOS em que muitas pessoas confiam. Ele dá aos usuários da Apple um poder semelhante ao apt-get ou yum., Se você é um usuário Homebrew, você já pode ter Python instalado. Para verificar rapidamente, execute:
$ brew list | grep python
python
Se o Python aparecer sob o comando, ele ” s instalado. Que versão é? Vamos verificar:
ok, óptimo! Os mantenedores do Homebrew atualizaram a garrafa Padrão Python para apontar para a última versão., Desde o Homebrew mantenedores são mais confiáveis-se a actualizar a versão do que a maioria de nós, podemos usar o Homebrew”s versão do Python 3 com o seguinte comando:
Agora, queremos apontar o alias (de cima) para a cópia do Python que Homebrew gerencia:
# If you added the previous alias, use a text editor to update the line to the following
alias python=/usr/local/bin/python3
certifique-se de que o caminho acima aponta para onde o Homebrew instalado o Python em nosso ambiente, podemos executar brew informações python e procure as informações de caminho.,
este método, de usar o Homebrew para gerir o nosso ambiente Python, é um bom ponto de partida, e fez sentido para mim na altura.e se ainda precisarmos do Python 2?
faz sentido que qualquer pessoa nova no Python comece com o Python 3., Mas aqueles de nós que ainda precisam de Python 2—por exemplo, para contribuir para um Python projeto que”só disponíveis em Python 2—pode continuar a usar o padrão macOS Python binário disponível em /usr/bin/python:
$ /usr/bin/python
>>> print("This runtime still works!")
This runtime still works!
Homebrew é tão maravilhoso, ele ainda oferece uma fórmula diferente para Python 2:
# If you need Homebrew"s Python 2.7 run
$ brew install python@2
A qualquer momento, nós podemos remover o alias de casca”s arquivo de configuração para voltar a usar o padrão de cópia do Python no sistema.não se esqueça de actualizar o pip para o pip3!,
o comando pip é o Gestor de pacotes predefinido especificamente para os pacotes Python. Embora tenhamos mudado o nosso comando Python padrão para ser a versão 3, temos que alias o nosso comando pip separadamente se estiver na versão anterior. Primeiro, precisamos verificar que versão nós”estamos em:
para garantir que “reinstalamos pacotes compatíveis com a nossa nova versão do Python, nós”vamos usar outro alias para apontar para a versão compatível do pip. Uma vez que estamos a usar o Homebrew como nosso Gestor de pacotes nesta situação, sabemos que instalou o pip3 quando instalámos o Python 3., O caminho padrão deve ser o mesmo como o Python 3, mas podemos confirmar isso pedindo o shell para encontrá-lo:
$ which pip3
/usr/local/bin/pip3
Agora que sabemos o local, vamos adicioná-lo ao nosso arquivo de configuração do shell, como fizemos antes:
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.zshrc
# or for Bash
$ echo "alias pip=/usr/local/bin/pip3" >> ~/.bashrc
por Último, podemos confirmar que a execução do pip aponta para pip3 abrindo um novo shell ou redefinindo nossa shell atual e ver o que podemos apontar para:
# This command reloads the current shell without exiting the session
# Alternatively, exit the shell and start a new one
$ exec $0
# Now we can look to see where pip points us
$ which pip
pip: aliased to /usr/local/bin/pip3
podemos evitar o uso de Homebrew para atualização de pip, mas que exige muito mais tutorial de documentação Python.,
Faça-o desde o início
Se estiver apenas a começar com o desenvolvimento em Python num macOS, faça as configurações necessárias para se certificar de que está a usar a versão correcta do Python desde o início. Instalar o Python 3, com ou sem o Homebrew, e usar o alias irá permitir-lhe iniciar a codificação, mas não é uma boa estratégia para o longo prazo. Usando o pyenv como uma solução de gestão de versões simples para começar bem.este artigo foi originalmente publicado em maio de 2019 e foi atualizado pelo editor.