terça-feira, 17 de junho de 2014

Como instalar um ambiente de desenvolvimento Python no Windows

Hoje eu fui desenvolver com Python no meu notebook com Windows 8 e descobri que não tinha nem pip, nem virtualenv, nem mesmo o setuptools instalado... E agora, José? Como é que você prepara uma máquina no Windows para trabalhar com Django, Flask, suds e outras tantas coisas legais que só o Python pode oferecer?

Eu tentei várias coisas, baixei scripts .py para rodar diretamente, instalei programas e mais programas dentro e fora do Cygwin, versões 64-bit e 32-bit de uma infinidade de pacotes e nada parecia dar certo. Então, resolvi começar de novo, explicando para vocês meu procedimento.

Primeiro de tudo, você precisa do Python, lógico. A versão mais atual é a 3.3, mas muita gente ainda usa a 2.7. Eu sou uma dessas pessoas. Estou fazendo um curso de "Introdução à Ciência da Computação e Programação com Python" no site edx.org e eles usam a versão 2.7.

Instalar o Python é fácil. Ele tem um instalador para Windows e tudo mais... Ainda assim, você precisa atentar para as variáveis de ambiente. Você deve ajustar o seu PATH. Algo assim:

PATH=%PATH%;C:\Python27;C:\Python27\Scripts
Agora, sim, você pode instalar o setuptools, que vai te permitir instalar o virtualenv, o pip e os demais utilitários do Python que vão te permitir instalar as bibliotecas e tudo mais.

Para instalar o setuptools, segui as orientações do site oficial, ou seja, usei o PowerShell. Eu nunca tinha usado isso, não sabia nem o que era. Aparentemente, é só mais um console, como o cmd e o cygwin. Apertei o botão do windows, escrevi "PowerShell", cliquei com o botão direito do mouse e pedi para Executar como Administrador. No console que se abriu, rodei o comando a seguir:

(Invoke-WebRequest https://bootstrap.pypa.io/ez_setup.py).Content | python -

Parece mágica, mas na verdade o que isso faz é baixar o arquivo ez_setup.py (tipo um wget ou curl) e depois executa ele com o python.

Eu já tinha colocado ali em cima a pasta Python27\Scripts no Path, mas é agora que isso se torna útil. O instalador do setuptools grava ali o arquivo easy_install.exe. Se você não incluiu a pasta no Path, inclua agora. Depois, saia do PowerShell e abra um console com permissões de administrador. Eu fiz assim: (Windows) cmd (botão direito) Executar como Administrador.

Dentro desse console de administrador é que nós vamos executar o easy_install para instalar o pip, assim:

easy_install pip

E agora, com o pip, você pode instalar o virtualenv:

pip install virtualenv

O virtualenv no Windows funciona um pouco diferente do Linux. Para ativar e desativar o ambiente virtual, ele grava arquivos .bat no diretório Scripts. Então para usar um novo ambiente virtualenv você faria:

virtualenv venv
cd venv
Scripts/activate.bat

Em algumas de minhas primeiras tentativas, este ambiente não funcionava e o erro não era claro, mas quando finalmente consegui uma mensagem legível descobri que o problema era de permissões. Bastou executar os comandos em um console como administrador que isso resolveu o problema. Não é a melhor solução, mas deu certo na falta de algo melhor.

Se tiverem outras sugestões de boas práticas, sou todo ouvidos. Sempre trabalhei com Java e sempre com outras pessoas (ou equipes) que cuidavam da infraestrutura, então tudo isso é meio novidade para mim.

ATUALIZAÇÃO (em 18/06/2014): E o git? Pois é, instalar as ferramentas Python sem usar o Cygwin tem essa desvantagem de te deixar fora do ambiente Unix-like e sem essa ferramenta essencial... Mas se você instalar o Git para Windows,  pode optar por utilizá-lo no cmd (console normal do Windows) e por permitir que ele instale também outros comandos Unix nesse ambiente, como o ls, ssh, etc. Aí, sim, você nem vai sentir tanta falta do Cygwin...

Para instalar alguns pacotes, como o pandas, você vai precisar instalar no Windows o Visual C++ 2008 Express Edition. Há algumas perguntas e respostas no StackOverflow sobre isso.

Abs.,
Otávio

Nenhum comentário:

Postar um comentário