.. _installation:
Instalação
============
Flask depende de duas bibliotecas externas, `Werkzeug
`_ e `Jinja2 `_.
Werkzeug é um conjunto de ferramentas para WSGI, a interface padrão do Python entre aplicações web e uma variedade de servidores para desenvolvimento e implantação.
Jinja2 é um renderizador de templates.
Então, como você pode obter tudo no seu computador rapidamente? Há muitas maneiras de
fazer isso, o método mais rápido é o virtualenv, então vamos dar uma olhada primeiro.
Você vai precisar do Python 2.5 ou superior para começar, portanto confira se o python instalado é um versão 2.x atualizada. Flask ainda não suporta Python 3.x.
.. _virtualenv:
virtualenv
----------
Virtualenv é provavelmente o que você vai querer usar durante o desenvolvimento, e se você tiver
o acesso aos servidores de produção, provavelmente vai querer usá-lo também.
Que problema que o virtualenv resolve? Se você gosta de Python tanto quanto eu, há chances de querer usá-lo para outros projetos além de Flask.
Quanto mais projetos você tem, maiores são as chances de você usar versões de diferentes do python, ou pelo menos diferentes
versões das bibliotecas python. Muitas vezes bibliotecas quebram por falta de
compatibilidade com versões anteriores, e é improvável que qualquer aplicação séria não tenha nenhuma dependência. Então, o que você faria se dois ou mais projetos tivessem dependências em conflito?
Virtualenv! Virtualenv permite várias instalações do Python,
uma para cada projeto. Na verdade, ele não instala cópias separadas de Python,
mas fornecem uma maneira inteligente de manter diferentes
ambientes de projeto isolado. Vamos ver como funciona.
Se você estiver usando Mac OS X ou Linux, é provável que um dos dois seguintes
comandos irá funcionar para você::
$ sudo easy_install virtualenv
ou melhor ainda::
$ sudo pip install virtualenv
Uma delas, provavelmente, vai instalar o virtualenv em seu sistema. Talvez ele já esteja em seu gerenciador de pacotes. Se você usa o Ubuntu, tente::
$ sudo apt-get install python-virtualenv
Caso você use Windows e não tem o comando `easy_install`, instale-o. Confire a seção :ref:`windows-easy-install` para mais informações. Uma vez tudo pronto, execute algum dos comandos acima, porém sem o prefixo `sudo`.
Depois de ter instalado o virtualenv, basta executar o shell e criar
seu próprio ambiente. Eu costumo criar uma pasta de projeto e uma pasta `venv`
dentro::
$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
Agora, sempre que você quiser trabalhar em um projeto, você só tem que ativar o
ambiente correspondente. No OS X e Linux, faça o seguinte::
$ . venv/bin/activate
Se você é um usuário Windows, execute o comando a abaixo::
$ venv\scripts\activate
De qualquer forma, agora você deve estar usando seu virtualenv (note como o prompt de
seu shell mudou para mostrar o ambiente ativo).
Agora você pode digitar o seguinte comando para instalar o Flask em seu
virtualenv::
$ pip install Flask
Poucos segundos depois, e ele estará instalado.
Instalação no Sistema
------------------------
Isto é possível, embora eu não recomendo. Basta executar
`pip` com privilégios de root::
$ sudo pip install Flask
(Em sistemas Windows, execute no prompt de comando com privilégios de administrador,
sem usar o comando `sudo`).
Vivendo no Limite
------------------
Se você quiser trabalhar com a última versão do Flask, há duas maneiras: você
pode deixar `pip` baixar a versão de desenvolvimento, ou você pode
fazer um git checkout. De qualquer maneira, é recomendado o virtualenv.
Usando o git checkout para um novo virtualenv e executar em modo de desenvolvimento::
$ git clone http://github.com/mitsuhiko/flask.git
Initialized empty Git repository in ~/dev/flask/.git/
$ cd flask
$ virtualenv venv --distribute
New python executable in venv/bin/python
Installing distribute............done.
$ . venv/bin/activate
$ python setup.py develop
...
Finished processing dependencies for Flask
Isso vai puxar as dependências e ativar a versão atual do git
dentro do virtualenv. Então tudo que você tem a fazer é executar o ``git pull
origin`` para atualizar para a versão mais recente.
Para obter apenas a versão de desenvolvimento sem git, basta fazer isso::
$ mkdir flask
$ cd flask
$ virtualenv venv --distribute
$ . venv/bin/activate
New python executable in venv/bin/python
Installing distribute............done.
$ pip install Flask==dev
...
Finished processing dependencies for Flask==dev
.. _windows-easy-install:
`pip` e `distribute` no Windows
-----------------------------------
No Windows, a instalação do `easy_install` é um pouco mais complicado, mas ainda assim
muito fácil. A maneira mais fácil de fazer isso é fazer o download do
arquivo `distribute_setup.py`_ e executá-lo. A maneira mais fácil de executar o arquivo é
abrir sua pasta de downloads e clicar duas vezes no arquivo.
Depois, adicione `easy_install` e outros scripts Python ao path,
isso pode ser feito adicionando a pasta de Scripts do diretório
de instalação do Python a variável de ambiente `PATH`. Para fazer isso,
clique com o botão direito no ícone "Meu Computador" na Área de Trabalho
ou no menu iniciar, e selecione "Propriedades".
Então clique em "Configurações Avançadas de Sistema" (no Windows XP,
clique na aba "Avançado"). Feito isso, clique no botão "Variáveis de Ambiente".
Finalmente, dê um duplo-clique na variável "PATH" na seção "Variáveis de Sistema",
e adicione o path do seu diretório de interpretador de Scripts do Python. Assegure-se
de separá-lo dos valores já existentes com um ponto-e-vírgula. Supondo que você
está utilizando Python 2.7 no path padrão, adicione o seguinte valor::
;C:\Python27\Scripts
E está pronto! Para confirmar que isso funcionou, abra o Prompt de Comando e execute
``easy_install``. Se você possuir o Controle da Conta de Usuário habilitado no Windows
Vista ou Windows 7, isso deve lhe solicitar privilégios de Administrador.
Agora você que tem ``easy_install``, você pode utilizá-lo para instalar ``pip``::
> easy_install pip
.. _distribute_setup.py: http://python-distribute.org/distribute_setup.py