No meu post sobre o HTTP2 mencionei que iria estudar HTTP2 construindo um servidor em python 3.5 explorando os recursos da biblioteca async/await.

Como eu uso Fedora em casa e como eu sei que por padrão há uma versão do python3 na distribuição, pensei que a versão 3.5 já estava disponível. Mas ao abrir o interpretador do python3 obtive a seguinte resposta:

python3
Python 3.4.3 (default, Mar 31 2016, 20:42:37) 
[GCC 5.3.1 20151207 (Red Hat 5.3.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Huuuum. Bad news. A versão embarcada no fedora é a 3.4.

Uma solução seria catar algum RPM ou repositório yum com a versão 3.5. Mas decidi voltar as origens e compilar do código fonte.

Assim, fui no site do Python e baixei o tar

Dai então foi usar os três passos clássicos configure/make/make install. No entanto, eu não quero misturar um python compilado manualmente com o provido pela distribuição. Desta forma eu evito conflitos de versões de binários, bibliotecas...

Assim, o passo configure foi modificado para prefixar um local de instalação:

./configure --prefix=/opt/python/3.5

Note que eu especifico no local onde vou instalar o python com sua versão. Desta forma, no futuro eu posso comparar implementações, performance e bugs usando como referência o prefixo do diretório - ou seja a versão - de onde o python foi instalado.

Caso você encontre algum erro no comando configure, use a caixa de comentários para eu tentar ajudar você. :D

Daí é executar os comandos make e make install

make
make install

Novamente, caso você encontre algum erro no comando configure, use a caixa de comentários para eu tentar ajudar você.

Agora é chamar o python 3.5 considerando o diretório que você prefixou:

/opt/python/3.5/bin/python3
Python 3.5.1 (default, Jun  7 2016, 23:17:41) 
[GCC 5.3.1 20151207 (Red Hat 5.3.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Perfeito, agora eu tenho o Python 3.5 na minha máquina pronto para o uso!