No
Mac OS X 10.13 High Sierra, a versão de Python que vem embarcada é 2.7.10, instalada no diretório
/usr/bin/python
. Porém, vem sem o gerenciador de pacotes nativo
pip
. Por definição, o sistema protege as pastas
/System /bin /sbin /usr
contra edição, mesmo usando usuário
root. A Apple chama isso de
SIP - System Integrity Protection. Na verdade, é uma característica interessante do ponto de vista de organização. Eventualmente, você pode desejar usar a versão mais atualizada (e recomendada) de Python, a 3.X (atualmente 3.6.3). Instalar essa versão é extremamente fácil e pode ser feito de duas maneiras:
Instalando Python
1. Primeiro método:
Navegue até
python.org/downloads
e baixe o pacote de instalação oficial. Clique nele e siga as instruções até o fim. A instalação será feita no diretório
/Library/Frameworks/Python.framework
. Uma chamada no terminal vai revelar, porém, outro diretório onde está um
hard link:
$ which python3
$ /usr/local/bin/python3
Esse método é o mais simples e garantido pelos desenvolvedores oficiais do Python, mas não é o preferido pelos desenvolvedores em geral. Antes, eu também preferia instalar via gerenciadores de pacote, mas ultimamente sempre tenho dado preferência ao instalador oficial quando existe um. No entanto, é preciso avisar, especialmente a quem tem menos experiência, que podem ocorrer erros de dependências se você misturar os métodos (por exemplo, instalar o Python 3 com o instalador oficial e o Python 2 com
homebrew, coisa que particularmente faço, mas não recomendo a todo mundo).
2. Segundo método:
Usando o
Homebrew é possível fazer instalações seguras e funcionais que ficarão localizadas na pasta
/usr/local/bin
, eliminando problemas de compatibilidade. Antes de fazer isso, é necessário instalar as ferramentas de desenvolvedor do
Xcode (via Apple Store) e o
Command Line Tools:
$ xcode-select --install
Depois, é só instalar o Homebrew, se já não estiver no sistema:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew
/install/master/install)"
E, antes de instalar o Python, colocar a pasta de destino no $PATH:
$ export PATH=/usr/local/bin:$PATH
Esta linha pode ser acrescentada no
~/.bash_profile
para maior comodidade.
$ echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile
Por fim, para instalar a nova versão do Python:
$ brew install python
Checando a versão e o local:
$ which python3
/usr/local/bin/python3
$ python3 --version
Python 3.6.3
Instalando a versão mais recente do Python 2.X
Usar o Homebrew para instalar outra versão de Python permite que a versão nativa conviva harmoniosamente com a nova. É possível até instalar a versão mais nova do
Python 2.X e usá-lo separadamente, sem interferir com as outras. As instruções de
Marina Mele são esclarecedoras.
Note que você acaba com 3 versões de Python que podem ser usadas sem interferir uma com a outra!
Python nativo:
$ which python
/usr/bin/python
$ python --version
Python 2.7.10
$ pip install virtualenv
-bash: pip: command not found #pip não está instalado!
Python 2 atualizado:
$ which python2
/usr/local/bin/python2
$ python2 --version
Python 2.7.14
$ which pip2
/usr/local/bin/pip2
Python 3:
$ which python3
/usr/local/bin/python3
$ python3 --version
Python 3.6.3
$ which pip3
/usr/local/bin/pip3
Finalmente, instalar pacotes à vontade será fácil apenas usando o comando
pip2 install
.
Usando virtualenv com Python 2.X
A melhor forma de instalar dependências específicas no Python 2.X é usando um ambiente virtual, para assegurar separação e organização das diversas instâncias.
Para instalar
virtualenv e
virtualenvwrapper:
$ pip2 install virtualenv
$ pip2 install virtualenvwrapper
Em seguida, criar uma pasta que vai conter os ambientes virtuais.
$ mkdir ~/.virtualenvs
Abrir ou criar o arquivo ~/.bashrc e colocar:
export WORKON_HOME=~/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
Nota 1: se não existir arquivo
.bashrc
, deve-se incluir o código seguinte no
.bash_profile
.
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
Nota 2: é preciso mudar a variável de ambiente que chama o Python instalado pelo Homebrew.
$ vi /usr/local/bin/virtualenvwrapper.sh
# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
VIRTUALENVWRAPPER_PYTHON="$(command \which python2)"
fi ^
Por fim, ativar estas mudanças:
$ source ~/.bashrc
Dessa forma, será possível criar um novo ambiente virtual:
$ mkvirtualenv --python=python2 myenviroment
Na pasta
~/.vitualenvs/myenvironment
que será criada pelo script. O ambiente será automaticamente ativo. Trocar de ambiente é simples como:
$ workon myenvironment
(myenvironment) $
E, para desativar os ambientes:
(myenvironment) $ deactivate
$
Deletar e listar os ambientes:
$ rmvirtualenv <nome_do_ambiente>
$ lsvirtualenv
Usando ambientes virtuais no Python 3.X
O Python 3 já tem o módulo nativo
venv
para gerenciar os ambientes virtuais. Logo, é possível usá-lo "direto da caixa" sem necessidade de instalar mais dependências. Para criar um ambiente:
$ python3 -m venv ~/.virtualenvs/myvenv
Dentro do ambiente, o comando
python
invoca de forma correta a instalação do Python 3.X. Para ativar o ambiente:
$ source ~/.virtualenvs/myvenv/bin/activate
(myvenv) $
Módulos instalados durante o uso de um ambiente virtual python permanecem apenas no ambiente ativo. Para desativar o ambiente:
(myvenv) $ deactivate
$
A versão mais recente do módulo
virtualenvwrapper
também pode ser usada com o Python 3.X:
$ pip3 install virtualenvwrapper
No entanto, eu nunca tentei instalar este módulo para duas versões diferentes de Python na mesma máquina e estou certo de que isso significa problema. Aconselho a usar o módulo
virtualenvwrapper
apenas em uma versão do Python. Na minha máquina, eu uso apenas para o Python 2.X