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
O Python já está instalado
python3 --versionO 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.txtNas 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.targetNo 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
Python pronto para produção
A hospedagem Python em VPS vem preparada para Django, Flask ou FastAPI, com Gunicorn ou Uvicorn e Nginx.