Pular para o conteúdo principal

Três maneiras de transformar um script Python num arquivo Exe

Aprenda o que é um arquivo executável e como converter um script Python em um arquivo .exe usando PyInstaller, Nuitka e auto-py-to-exe.
Atualizado 15 de jan. de 2026  · 7 min lido

Neste artigo, vou te mostrar alguns cenários que justificam a conversão do seu arquivo Python em um executável. Também vou mostrar como converter um arquivo Python em um arquivo executável usando três bibliotecas Python: Pyinstaller, Nuitka e auto-py-to-exe.

Clone este repositório do Github para acompanhar este tutorial.

Por que converter Python para .exe?

Arquivos executáveis - arquivos salvos com a extensão .exe - são usados para instalar ou executar aplicativos de software em computadores com o sistema operacional Windows. O arquivo que permite que um computador Windows execute um aplicativo é o arquivo .exe.

Tem várias razões pelas quais você pode querer converter um programa Python em um arquivo executável. Vamos dar uma olhada em alguns deles:

Atividade maliciosa

Infelizmente, algumas pessoas na internet gostam de espalhar softwares maliciosos para infectar os dispositivos de outras pessoas e roubar suas informações. Uma maneira de combater essas pessoas é evitar cair nos golpes delas – isso significa não baixar ou abrir arquivos .exe que não sejam de uma fonte confiável.

Acessibilidade

Outra razão pela qual você pode querer converter um arquivo Python em um executável é para compartilhar um aplicativo com outros usuários. Um programa Python típico pode ter várias dependências que outro usuário precisa instalar antes de poder rodar o programa. E se a pessoa não souber programar? Nesses casos, esperar que um usuário aprenda a programar antes de usar um aplicativo pode não ser muito razoável. Converter um arquivo Python em um arquivo executável permite que os usuários acessem seu programa sem precisar saber Python.

Protegendo o código-fonte

Mas mesmo que eles saibam quem codificar, converter um arquivo Python em um arquivo executável pode ser uma boa opção para evitar que seu código seja roubado. Um arquivo executável evita que o código seja roubado porque cria uma versão compilada do seu código-fonte, o que o torna mais difícil de entender do que o código-fonte real.

Agendamento de tarefas

Você também pode querer agendar uma tarefa no seu computador para executar um arquivo .exe em um horário específico.

Aprenda Python do zero

Domine o Python para a ciência de dados e adquira habilidades que estão em alta.
Comece a aprender de graça

Como converter um script Python em um arquivo .exe 

Agora que você já sabe o que são arquivos .exe e por que pode querer converter um arquivo Python em um arquivo .exe, vamos ver como fazer isso no Python. Nesta seção, vamos falar sobre três frameworks: pyinstaller, nuitka e auto-py-to-exe.

Uma coisa pra ficar de olho é que auto-py-to-exe tem problemas de compatibilidade conhecidos com o Python 3.11 e versões posteriores, e geralmente só é confiável até o Python 3.10, a menos que você use versões mais recentes específicas e dependências cuidadosamente combinadas.

Dito isso, vamos começar.

Preparando o roteiro

Essa demonstração vai usar o conjunto de dados abertos do Airbnb da cidade de Nova York.  

Antes que os cientistas de dados possam analisar um conjunto de dados, os dados precisam ser formatados para serem compatíveis com as ferramentas que eles estão usando. Então, criar um esquema de validação define de forma eficaz todas as validações que se aplicam a cada campo de forma declarativa. Esse processo pode ser bem repetitivo. Pra evitar que nossos cientistas de dados fiquem fazendo tarefas repetitivas, criamos um script de validação automático pra rodar de vez em quando. 

Observação: Tenha muito cuidado ao usar caminhos relativos se o seu script precisar ler dados. É melhor usar caminhos absolutos pra garantir que seu executável funcione como esperado. 

import pandas as pd
from pandas.api.types import CategoricalDtype

def perform_validation(filename:str):
    """
    A function to validate inputs for NYC Airbnb Open data.
    """
    path_to_data = "../.."
    data = pd.read_csv(f"{path_to_data}{filename}")



    # Convert neighbourhood_group to type category
    neighbourhood_group_to_cat = CategoricalDtype(
        categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"],
        ordered=False
        )
 
    data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat)

    # Convert room_type to type category
    room_type_to_cat = CategoricalDtype(
        categories=["Entire home/apt", "Private room", "Shared room"],
        ordered=False
    )

    data["room_type"] = data["room_type"].astype(room_type_to_cat)

    # Convert last_review to datetime
    data["last_review"] = pd.to_datetime(data["last_review"])

    # Minimum nights a person can stay is one night
    assert data["minimum_nights"].min() >= 1

    # Minimum number of reviews is 0
    assert data["number_of_reviews"].min() >= 0
 
    # Minimum number of reviews per month
    assert data["reviews_per_month"].min() >= 0.00

    # Minimum amount of listings per host
    assert data["calculated_host_listings_count"].min() >= 1

    # Number of days when listing is available for books
    # Could be 0 if tennant has long term booking
    assert data["availability_365"].min() >= 0

    # Save validated data
    data.to_csv("validated_ab_nyc_2019.csv", index=False)

if __name__ == "__main__":
    # User inputs filename
    filename = input("Enter filename: ")
 
    # Ensure it's a string
    if not filename.isalpha():
        filename = str(filename)
 
    # Automated validation
    perform_validation(filename)

Observação: copiamos e colamos esse script nos diretórios pyinstaller, nuitka e auto-py-to-exe

# Directory structure
|   AB_NYC_2019.csv
|  
+---auto_py_to_exe
|   |   requirements.txt
|   |   validation.py         
+---pyinstaller
    |   requirements.txt
    |   validation.py

Cada diretório tem seu próprio ambiente virtual no qual instalamos os requisitos: veja os requisitos do pyinstaller ou os requisitos do auto-py-to-exe. Se você estiver acompanhando o código, certifique-se de criar um ambiente virtual no diretório pyinstaller e no diretório auto-py-to-exe. 

Em um nível mais alto, o script acima tem uma função – saiba mais sobre como escrever funções em Python – que lê um conjunto de dados e depois define o formato esperado de campos específicos nos dados. O próximo passo é transformar esse script Python num arquivo executável que possa ser rodado de vez em quando para criar um conjunto de dados formatado. 

Método 1: Pyinstaller

O Pyinstaller permite converter rapidamente um arquivo Python em um arquivo executável a partir do seu terminal. Depois de criar seu ambiente virtual e instalar os requisitos para seu script (incluindo o pyinstaller), basta abrir o terminal e ir até o diretório onde está o arquivo Python que você quer converter. 

O próximo passo é executar o seguinte comando: 

pyinstaller --onefile validation.py

No começo, você vai ver vários registros, e o último vai dizer algo tipo “concluído com sucesso” – desde que o arquivo executável tenha sido criado sem problemas. 

arquivo executável sendo criado

Figura 1: Registros mostrando que o arquivo executável está sendo criado e que foi concluído com sucesso.

Quando você terminar de rodar isso, vai aparecer dois novos diretórios, build e dist, no mesmo lugar onde tá o arquivo Python. No diretório dist, você vai encontrar o script validation.exe.

validação.exe em um conjunto de dados

Figura 2: Um GIF mostrando como o validation.exe funciona em um conjunto de dados.

Para rodar o script, é só clicar nele. Isso vai abrir um console que vai pedir pra você colocar o nome do arquivo dos dados que você quer validar. Depois de colocar o nome do arquivo, o console vai fechar e os dados validados vão ser criados no mesmo diretório do arquivo validation.exe – veja a Figura 2. 

Método 2: Nuitka

O Nuitka é outra opção que vale a pena pensar. Diferente do PyInstaller, que junta seu script Python com o interpretador Python, o Nuitka realmente compila seu código Python para código C. Isso resulta em melhor proteção do código-fonte, execução potencialmente mais rápida e, muitas vezes, tamanhos de arquivo menores. A desvantagem é um tempo de compilação mais longo e uma configuração mais complexa.

Instalação e configuração

Depois de criar um ambiente virtual e instalar o Nuitka usando o pip install nuitka, você precisa garantir que um compilador C esteja disponível no seu sistema. O compilador que você precisa depende do seu sistema operacional:

  • Windows: Baixe e instale o Microsoft Visual C++ Build Tools (grátis) no site do Visual Studio ou use o MinGW.

  • macOS: Instale as Ferramentas de Linha de Comando do Xcode com xcode-select --install

  • Linux: O GCC geralmente já vem instalado; se não estiver, instale-o usando o gerenciador de pacotes.

Depois de instalado, o Nuitka vai detectar automaticamente o seu compilador. Se você tiver problemas, veja se o compilador está instalado no seu sistema PATH.

Convertendo o script de validação com o Nuitka

Vamos converter o mesmo script de validação do Airbnb de Nova York usando o Nuitka, assim como fizemos com o PyInstaller e o auto-py-to-exe. Para compilar nosso script em um executável, execute:

python -m nuitka --onefile --follow-imports --include-package=pandas validation.py

Vamos analisar cada sinalizador:

  • --onefile: Cria um único arquivo executável (em vez de um diretório com vários arquivos e dependências)

  • --follow-imports: Inclui automaticamente todos os módulos que seu script importa.

  • --include-package=pandas: Inclui explicitamente o pacote pandas (alguns pacotes não são detectados automaticamente, então isso garante que ele seja incluído).

Diferente do PyInstaller, que leva só uns 30 segundos, o Nuitka demora bem mais — geralmente de 5 a 15 minutos, dependendo da complexidade do seu código e da velocidade do sistema. Você vai ver a saída da compilação no terminal mostrando o progresso durante a etapa de compilação C.

Quando terminar, você vai ver uma mensagem dizendo que o executável foi criado. O executável compilado é criado no mesmo diretório que o arquivo validation.py.

Clique duas vezes em validation.exe ou execute-o a partir da linha de comando. Uma janela do console vai aparecer pedindo pra você colocar um nome de arquivo, igual ao PyInstaller. Depois de digitar AB_NYC_2019.csve apertar Enter, a validação rola, o console fecha e um novo arquivo validated_ab_nyc_2019.csv é criado no mesmo diretório, igualzinho à versão do PyInstaller.

Método 3: auto-py-to-exe

O primeiro passo para criar um arquivo executável usando o auto-py-to-exe é rodá-lo com o seguinte comando: 

auto-py-to-exe 

Isso deve trazer uma interface gráfica do usuário (GUI) que vai nos ajudar a transformar nosso arquivo Python em um arquivo executável. 

interface gráfica do usuário

Figura 3: A interface gráfica do usuário voltou depois de rodar o comando auto-py-to-exe. 

Observação: se não estiver funcionando, certifique-se de ter criado um ambiente virtual no diretório auto-py-to-exe e instalado o requirements.txt no seu ambiente virtual usando o seguinte comando: pip install -r requirements.txt.

A interface gráfica tem vários campos que a gente precisa preencher. Vamos dar uma olhada em cada um deles e analisar: 

  • Localização específica: Neste campo, você precisa colocar o local do script do arquivo Python que quer transformar em um executável.  
  • Onefile: É aqui que você escolhe se quer criar um único diretório ou arquivo. Um único diretório vai ter todas as dependências necessárias para rodar seu script e um arquivo executável, enquanto que escolher “Um arquivo” vai criar um único arquivo executável. 
  • Janela do console: A escolha entre uma janela de console “baseada em console” ou “baseada em janela” depende do que o seu script retorna. Por exemplo, o script que criamos acima precisa que o usuário digite um nome de arquivo. Então, a gente recomenda a solução “Baseada em Console”, porque ela abre o console depois de rodar o arquivo executável. Se não precisar mostrar as saídas do console depois de rodar o arquivo executável, então “Baseado em janela” é uma boa opção. 

Também temos outras opções para configurar a criação do nosso arquivo executável (por exemplo, adicionar ícones, arquivos adicionais e muito mais). Nesta seção, também podemos mudar o caminho para onde queremos exportar os arquivos gerados pelo nosso arquivo executável: para fazer isso, selecione a opção “Configurações” e procure o diretório de saída que você quiser. O último passo é escolher “Converter .py para .exe” pra converter nosso arquivo Python. 

Dá uma olhada no GIF da Figura 4 pra ver como a gente configurou nosso arquivo executável. 

Auto py para exe

Figura 4: Um GIF mostrando como configurar o auto-py-to-exe

Quando voltarmos ao diretório auto-py-to-exe, vai ter um diretório chamado output: é onde fica o nosso arquivo validation.exe. Escolha o arquivo que você quer rodar, e vai aparecer um console pedindo pra você digitar o nome do arquivo:

arquivo de validação executável

Figura 5: O console voltou depois de rodar o arquivo de validação executável. 

É só digitar o nome do arquivo – nesse exemplo, AB_NYC_2019.csv – e apertar Enter. Isso vai fechar o console e criar um novo arquivo no diretório de saída (onde fica o arquivo executável) chamado validated_ab_nyc_2019.csv.

PyInstaller x Nuitka

Vejacomo o Nuitka e o PyInstaller se comparam no mesmo script de validação, junto com o auto-py-to-exe como uma alternativa GUI:

Métrico

PyInstaller

auto-py-to-exe

Nuitka

Tamanho do executável

média

média

20-30% menor

Tempo de construção

média

média

16 vezes mais longo

Tempo de inicialização

~2 segundos

~2 segundos

~1 segundo

Tempo de execução (tarefa de validação)

~3 segundos

~3 segundos

~2,5 segundos

Proteção do código-fonte

Moderado

Moderado

Ótimo

Python 3.8–3.10

✅ Excelente

✅ Excelente

✅ Excelente

Python 3.11+

✅ Excelente

⚠️ Problemas conhecidos

✅ Excelente

O PyInstaller e o Nuitka oferecem suporte confiável para todas as versões modernas do Python, enquanto o auto-py-to-exe tem problemas de compatibilidade conhecidos com o Python 3.11 e versões posteriores. O Nuitka faz executáveis menores e mais rápidos com proteção IP melhor, mas o processo de compilação é tipo 16 vezes mais lento que o PyInstaller.

Conclusão

Neste artigo, você aprendeu: 

  • O que é um arquivo Python
  • O que é um arquivo executável e por que ele pode ser útil 
  • Como transformar um script Python em um executável usando o pyinstaller, que é uma ferramenta ótima pra quem curte mais as operações de linha de comando. 
  • Como converter um script Python em um executável usando o auto-py-to-exe, que dá aos usuários uma interface gráfica (GUI) pra configurar como o arquivo executável deve ser criado. 

Saiba mais sobre como você pode usar o Python para fazer ciência de dados no programa DataCamps Associate Data Scientist with Python.

Perguntas frequentes

Posso incluir arquivos adicionais (por exemplo, imagens, arquivos de configuração) no executável?

Sim, todas as três ferramentas permitem que você inclua arquivos adicionais necessários para o seu script. Para o PyInstaller e o Nuitka, você pode usar a opção ` --add-data ` para especificar os arquivos a serem incluídos. No auto-py-to-exe, tem uma opção na interface gráfica pra adicionar arquivos em “Arquivos adicionais”. Certifique-se de especificar os caminhos relativos ou absolutos corretamente para que o executável possa acessar esses arquivos.

Como posso adicionar um ícone personalizado ao arquivo executável?

Você pode adicionar um ícone personalizado ao seu executável especificando um arquivo .ico. Para o PyInstaller, use a flag ` --icon ` seguida do caminho para o seu arquivo .ico. No auto-py-to-exe, você pode definir o caminho do ícone no campo “Ícone” dentro da GUI. O Nuitka também aceita a flag ` --windows-icon-from-ico `. Lembre-se de que o arquivo do ícone precisa estar no formato .ico.

Por que meu arquivo executável é tão grande e como posso diminuir o tamanho dele?

Os arquivos executáveis podem incluir todas as dependências, bibliotecas e o interpretador Python, o que pode torná-los grandes. Para diminuir o tamanho:

  • Use a opção “ --onefile ” no PyInstaller ou Nuitka para juntar tudo em um único arquivo.
  • Exclua bibliotecas desnecessárias usando a opção “ --exclude-module ” no PyInstaller ou Nuitka.
  • Pense em usar ferramentas como o UPX para comprimir o executável resultante (funciona com o PyInstaller e o auto-py-to-exe).
  • Pense em usar o Nuitka, que geralmente gera executáveis 20 a 30% menores do que o PyInstaller.

Posso criar um executável para um sistema operacional diferente?

PyInstaller, auto-py-to-exe e Nuitka são todos específicos para cada plataforma. Para criar um executável para um sistema operacional diferente, você precisa usar ferramentas de compilação cruzada ou configurar uma máquina virtual ou contêiner para o sistema operacional de destino. Por exemplo, pra criar um executável do Windows no Linux, você pode usar o Wine ou o Docker com um ambiente Windows.

Quais são as alternativas ao pyinstaller e ao auto-py-to-exe?

Outras ferramentas para criar executáveis incluem:

  • cx_Freeze: Uma ferramenta multiplataforma para criar executáveis.
  • py2exe: Uma ferramenta específica para Windows que cria executáveis a partir de scripts Python.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Tópicos

Cursos de Python

Curso

Python intermediário

4 h
1.3M
Aumente o nível de suas habilidades em ciência de dados criando visualizações usando Matplotlib e manipulando DataFrames com pandas.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

Tutorial: Como instalar o Python no macOS e no Windows

Saiba como instalar o Python em sua máquina pessoal com este tutorial passo a passo. Se você é um usuário do Windows ou do macOS, descubra vários métodos para começar a usar o Python em sua máquina.
Richie Cotton's photo

Richie Cotton

14 min

Tutorial

Tutorial de como executar scripts Python

Saiba como executar um script Python a partir da linha de comando e também como fornecer argumentos de linha de comando ao seu script.
Aditya Sharma's photo

Aditya Sharma

Tutorial

Tutorial de execução de scripts Python no Power BI

Descubra as diferentes maneiras de usar o Python para otimizar a análise, a visualização e a modelagem de dados no Power BI.
Joleen Bothma's photo

Joleen Bothma

Tutorial

Tutorial do Python Excel: O guia definitivo

Saiba como ler e importar arquivos do Excel em Python, gravar dados nessas planilhas e encontrar os melhores pacotes para fazer isso.
Natassha Selvaraj's photo

Natassha Selvaraj

Tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

Tutorial

Instruções IF, ELIF e ELSE em Python

Neste tutorial, você vai aprender só sobre as instruções if else do Python.
Sejal Jaiswal's photo

Sejal Jaiswal

Ver maisVer mais