Hospedagem Segura — página inicial

Docker e aplicações

Como instalar Python no servidor Linux e publicar uma aplicação

O Ubuntu já vem com Python 3. O que muda em um servidor é como isolar as dependências de cada projeto e como manter a aplicação rodando atrás de um servidor web.

Como instalar Python no servidor Linux e publicar uma aplicação

Atualizado em 02/10/2026

O Python já está instalado

python3 --version

O sistema usa esse Python internamente. Não troque nem remova a versão do sistema: crie ambientes separados para as suas aplicações.

Crie um ambiente virtual por projeto

sudo apt-get install -y python3-venv python3-pip
cd /srv/minha-app
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Nas versões recentes do Ubuntu, rodar pip install fora de um ambiente virtual mostra o erro externally-managed-environment. É proposital: impede que pacotes do pip quebrem pacotes do sistema. A solução é usar o venv, e não forçar a instalação global.

Precisa de outra versão do Python?

Se o projeto exige uma versão diferente da do sistema, use um gerenciador como o pyenv ou o uv, que instalam versões do Python por usuário sem mexer no Python do sistema.

Publique com um servidor de aplicação

  • Django e Flask (WSGI): Gunicorn.
  • FastAPI e outras aplicações ASGI: Uvicorn, ou Gunicorn com workers do Uvicorn.
  • Na frente de todos: Nginx, para HTTPS, arquivos estáticos e encaminhamento.

Exemplo de serviço do systemd para uma aplicação Django com Gunicorn:

[Unit]
Description=Minha app Django
After=network.target

[Service]
User=app
WorkingDirectory=/srv/minha-app
ExecStart=/srv/minha-app/.venv/bin/gunicorn projeto.wsgi:application --bind 127.0.0.1:8000 --workers 3
Restart=always

[Install]
WantedBy=multi-user.target
Salve em /etc/systemd/system/minha-app.service e ative com sudo systemctl enable --now minha-app.

No Nginx, encaminhe o domínio para 127.0.0.1:8000 com proxy_pass e sirva os arquivos estáticos direto da pasta do projeto. Depois, emita o certificado HTTPS com o Certbot.

Variáveis de ambiente e segredos

Guarde chaves e senhas em um arquivo de ambiente com permissão restrita (lido pelo systemd com EnvironmentFile), nunca no repositório do código.

Python pronto para produção

A hospedagem Python em VPS vem preparada para Django, Flask ou FastAPI, com Gunicorn ou Uvicorn e Nginx.

WhatsApp