Vou comecar esse artigo pelo obvio, mas que gera frustracao em quem vem do PHP: hospedar Python e mais complicado do que hospedar PHP. Mas nao e o fim do mundo.Pronto, falei.Agora, vamos seguir pelos itens basicos necessarios para hospedar um projeto em Python.Servidor web------------Nao tem jeito, como seu sistema vai rodar na web, voce precisa de um servidor web. O mais famoso e o Apache. O Nginx ganhou muito mercado nos ultimos anos por ser mais leve e ter excelente desempenho.A cada requisicao de URL o servidor web repassa a execucao para o Python. De forma parecida como o PHP. Geralmente o servidor web lida diretamente com os arquivos estaticos e o Python, assim como o PHP, lida com a execucao dos programas que voce desenvolveu."Servidor de aplicacao"-----------------------E, esta entre aspas porque o Python nao tem exatamente um servidor de aplicacao, mas existem diferentes formas de fazer o servidor web conversar com o Python para que os programas sejam executados.Nao vou entrar em detalhes nesse artigo, mas se voce usar um VPS ou um servidor dedicado, vai se deparar com os seguintes nomes: uWSGI e Gunicorn. Esses dois softwares servem exatamente para fazer o servidor web mandar executar seus programas Python e pegar a resposta deles.Isso fica transparente quando voce usa um servidor compartilhado ou um PaaS.Quando voce faz um deploy a nova versao dos programas so sera executada quando o "servidor de aplicacao" for reiniciado.Esse _reload_ e muito rapido, mas por que e necessario? Por questao de desempenho. Os programas sao carregados uma vez no inicio da aplicacao e so sao atualizados quando o servidor e iniciado. Normalmente isso e feito dando um `touch` em um determinado arquivo que e sempre monitorado. Quando esse arquivo e atualizado, o servidor reinicia e a nova versao dos programas e executada.Banco de dados--------------A famosa dupla PHP/MySQL nao encontra um paralelo de unanimidade no mundo Python. E muito comum vermos sistemas escritos em Python acessando MySQL ou Postgres.SQLite resolve boa parte dos problemas de sites com poucos acessos e pouca concorrencia, mas nao e recomendado para sites maiores, principalmente com muitas atualizacoes. Eu mesmo tenho sites rodando com SQLite sem problema, mas a caracteristica principal deles e leitura com pouquissima atualizacao.Os bancos NoSQL tambem fazem sucesso no mundo Python. MongoDB praticamente domina esse nicho. Entretanto, [Postgres](https://www.postgresql.org/docs/9.6/static/datatype-json.html) e [MySQL](https://dev.mysql.com/doc/refman/5.7/en/json.html) ja suportam manipulacao eficiente de dados JSON.Acesso shell------------Para hospedar Python, geralmente voce vai precisar de acesso ao shell do servidor. Sim, a linha de comandos do Linux.E rotineiro usarmos bibliotecas de terceiros e elas precisam ser instaladas. Nesse caso dois componentes importantes entram em acao:1. [virtualenv](https://docs.python.org/3/library/venv.html#module-venv)1. [pip](https://packaging.python.org/installing/#use-pip-for-installing)Nao vou me alongar na descricao dessas ferramentas. Se voce quer hospedar seu projeto, provavelmente ja conhece ambos.O virtualenv permite que varias versoes de uma mesma biblioteca possam conviver no mesmo computador. Um exemplo: Suponhamos que voce tem 2 projetos. Um usando Django 1.4 e outro usando Django 1.10. Com o virtualenv voce consegue ter os dois projetos rodando no mesmo servidor sem conflito entre as versoes de Django.O pip permite instalar as bibliotecas usadas por sua aplicacao. Ele equivale