# 2. Utilizando Python em plataformas Unix

## 2.1. Obtendo e instalando a versão mais recente do Python

### 2.1.1. No Linux

O Python vem pré-instalado na maioria das distribuições Linux e está disponível como um pacote em todos as outras. No entanto, existem certos recursos que podemos querer utilizar e que não estão disponíveis no pacote da sua distro. Poderás compilar facilmente a versão mais recente do Python desde a origem.

Nas situações em que o Python não vier pré-instalado e também não estiver nos repositórios, poderás facilmente gerar os pacotes para a sua distro. Veja os seguintes links:

Ver também

https://www.debian.org/doc/manuals/maint-guide/first.en.html

  para usuários Debian

https://en.opensuse.org/Portal:Packaging

  para usuários OpenSuse

https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-creating-rpms.html

  para usuários Fedora

http://www.slackbook.org/html/package-management-making-packages.html

  para usuários do Slackware

### 2.1.2. On FreeBSD e OpenBSD

- usuários do FreeBSD, para adicionar a utilização do pacote utilize:

      pkg install python3

- Usuários do OpenBSD, para adicionar pacotes use:

      pkg_add -r python

      pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/<insert your architecture here>/python-<version>.tgz

  Por exemplo, usuários i386 podem pegar a versão 2.5.1 do Python usando o comando:

      pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.2/packages/i386/python-2.5.1p2.tgz

### 2.1.3. No OpenSolaris

Podes baixar o Python desde OpenCSW. Várias versões do Python estão disponíveis e poderás instala-las, por exemplo `pkgutil -i python27`.

## 2.2. Construindo o Python

Se você quer compilar o CPython, a primeira coisa que você precisa fazer é baixar o código-fonte. Você pode baixar a última versão ou usar o git para fazer um clone. (Se você pretende contribuir modificações, você vai precisar um “clone”.)

O processo de compilação consiste em:

    ./configure
    make
    make install

invocações. As opções de configuração e as ressalvas para plataformas específicas do Unix estão amplamente documentadas no arquivo README.rst na raiz da árvore de origem do Python.

Aviso

`make install` pode sobrescrever ou mascarar o arquivo binário `python3`. `make altinstall` é, portanto, recomendado ao invés de `make install` uma vez que o mesmo apenas instala o arquivo `exec_prefix/bin/pythonversion`.

## 2.3. Paths e arquivos relacionados com o Python

Estes estão sujeitos a diferenças dependendo das convenções de instalação local; `prefix` (`${prefix}`) e `exec_prefix` (`${exec_prefix}`) dependem da instalação e devem ser interpretados da mesma forma que para o software GNU; eles poderão ser os mesmos.

Por exemplo, na maioria dos sistemas Linux, o padrão para ambos é `/usr`.

Arquivo/diretório | Significado
--- | ---
`exec_prefix/bin/python3` | Localização recomendada do intérprete.
`prefix/lib/pythonversion`, `exec_prefix/lib/pythonversion` | A Localização recomendada dos diretórios contendo os módulos padrão.
`prefix/include/pythonversion`, `exec_prefix/include/pythonversion` | Localizações recomendadas dos diretórios contendo os arquivos de inclusão necessários para o desenvolvimento de extensões Python e incorporação do interpretador.

## 2.4. Diversos

Para usar facilmente scripts Python no Unix, você precisa torná-los executáveis, por exemplo, com

    $ chmod +x script

e coloque uma linha Shebang apropriada no topo do script. Uma boa escolha normalmente é:

    #!/usr/bin/env python3

que procura o intérprete do Python no conjunto `PATH`. No entanto, alguns Unices podem não ter o comando env, então poderás precisar do hardcode `/usr/bin/python3` como o caminho até o interpretador.

Para usar comandos Shell em seus scripts Python, veja o módulo `subprocess`.

## 2.5. Editores e IDEs

Há um grande número de IDEs que suportam a linguagem de programação Python. Vários editores e IDEs provêem destaques coloridos de sintaxe, ferramentas de depuração, e checagem do código frente à PEP 8.

Por favor, vá para Python Editors and Integrated Development Environments para obter uma lista completa.