Pular para o conteúdo principal

Dois métodos simples para converter um arquivo Python em um arquivo Exe

Saiba o que é um arquivo executável e por que ele pode ser útil enquanto você analisa como converter um script Python em um executável usando o auto-py-to-exe.
Actualizado 18 de jul. de 2024  · 6 min de leitura

Os arquivos Python têm dois métodos principais de execução: usando o terminal ou em um editor de texto/IDE que você escolher. Observe que um arquivo Python é simplesmente um programa ou script escrito com o código-fonte Python e salvo com a extensão de arquivo .py. Há vários cenários em que você pode querer ocultar seu código-fonte ao compartilhar scripts Python com outras pessoas. Uma maneira de conseguir isso é convertendo o arquivo Python em um arquivo executável.

Neste artigo, abordaremos alguns dos cenários que justificam a conversão do seu arquivo Python em um executável. Também demonstraremos como converter um arquivo Python em um arquivo executável usando duas bibliotecas Python: Pyinstaller e auto-py-to-exe.

Clone este repositório do Github para que você possa acompanhar este tutorial.

Por que converter Python em um 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.

Há vários motivos pelos 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 mal-intencionados para infectar os dispositivos de outras pessoas e roubar suas informações. Uma maneira de combater essas pessoas é evitar cair em seus golpes, o que significa não baixar ou abrir cegamente arquivos .exe que não sejam de uma fonte confiável.

Acessibilidade

Outro motivo pelo qual você pode querer converter um arquivo Python em um executável é para compartilhar um aplicativo com outros usuários. O programa Python típico pode consistir em várias dependências que outro usuário precisaria instalar para que o programa pudesse ser executado. E se a pessoa não souber programar? Nesses cenários, esperar que um usuário aprenda a codificar antes de usar um aplicativo pode não ser razoável. A conversão de um arquivo Python em um arquivo executável permite que os usuários acessem o seu programa sem conhecer Python.

Proteção do código-fonte

Mas, mesmo que eles saibam quem codifica, 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 impede 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 compreender do que o código-fonte real.

Programação de trabalhos

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

Tutorial de conversão de Python para exe 

Agora que você sabe o que são arquivos .exe e por que deseja converter um arquivo Python em um arquivo .exe, vamos ver como fazer isso no Python. Nesta seção, abordaremos duas estruturas: pyinstaller e auto-py-to-exe. 

Essa demonstração 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, eles devem ser formatados para serem compatíveis com as ferramentas que estão usando. Assim, ao criar um esquema de validação, você define efetivamente todas as validações que se aplicam a cada campo de forma declarativa. Esse processo pode ser bastante repetitivo. Para evitar que nossos cientistas de dados se envolvam em tarefas repetitivas, criamos um script de validação automatizado para ser executado periodicamente. 

Observação: Seja extremamente cuidadoso ao usar caminhos relativos se o script precisar ler dados. É melhor você usar caminhos absolutos para garantir que o executável funcione conforme o 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 do pyinstaller e do 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: consulte requisitos do pyinstaller ou 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 contém uma função - saiba mais sobre como escrever funções em Python - que lê um conjunto de dados e, em seguida, define o formato esperado de campos específicos nos dados. A próxima etapa é converter esse script Python em um arquivo executável que possa ser executado periodicamente para gerar um conjunto de dados formatado. 

Tutorial do Pyinstaller

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

A próxima etapa é executar o seguinte comando: 

pyinstaller --onefile validation.py

Inicialmente, você verá vários logs, dos quais o último dirá algo como "completed successfully" (concluído com êxito), já que o arquivo executável foi criado com êxito. 

arquivo executável que está sendo criado

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

A conclusão dessa execução criará dois novos diretórios, build e dist, no mesmo diretório em que o arquivo Python está localizado. No diretório dist, você encontrará o script validation.exe.

validation.exe em um conjunto de dados

Figura 2: Um GIF que demonstra a execução do validation.exe em um conjunto de dados.

Para executar o script, basta clicar nele. Isso abrirá um console que solicita a inserção do nome do arquivo dos dados nos quais você deseja executar a validação. Depois que você digitar o nome do arquivo, o console será fechado e os dados validados serão criados no mesmo diretório que o arquivo validation.exe - veja a Figura 2. 

Tutorial do Auto py to exe 

A primeira etapa para criar um arquivo executável usando o auto-py-to-exe é executá-lo usando o seguinte comando: 

auto-py-to-exe 

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

interface gráfica do usuário

Figura 3: A interface gráfica do usuário retornou após a execução do comando auto-py-to-exe. 

Observação: se não estiver funcionando, verifique se você criou um ambiente virtual no diretório auto-py-to-exe e instalou o arquivo requirements.txt no ambiente virtual usando o seguinte comando: pip install -r requirements.txt.

A GUI tem vários campos que devem ser preenchidos. Vamos dar uma olhada em cada uma delas e fazer uma pausa: 

  • Localização específica: Nesse campo, você deve adicionar o local do script do arquivo Python que deseja converter em um executável.  
  • Um arquivo: É aqui que você seleciona se deseja criar um único diretório ou arquivo. Um único diretório conterá todas as dependências necessárias para executar o script e um arquivo executável, ao passo que a seleção de "One File" criará um único arquivo executável. 
  • Janela do console: A decisão entre uma janela de console "baseada em console" ou "baseada em janela" depende do que é retornado pelo seu script. Por exemplo, o script que criamos acima exige que o usuário insira um nome de arquivo. Portanto, a solução "Console Based" é recomendada, pois ela abrirá o console após a execução do arquivo executável. Se não houver necessidade de exibir as saídas do console após a execução do arquivo executável, a opção "Window Based" será uma boa opção. 

Também são fornecidas outras opções para configurar a criação do nosso arquivo executável (ou seja, adicionar ícones, arquivos adicionais e outros). Nesta seção, também podemos modificar o caminho para onde queremos exportar os arquivos gerados pelo nosso arquivo executável: para fazer isso, selecione a opção de alternância "Settings" (Configurações) e navegue até o diretório de saída que você escolher. A última etapa é selecionar "Convert .py to .exe" (Converter .py em .exe) para converter nosso arquivo Python. 

Veja o GIF na Figura 4 para saber como configuramos nosso arquivo executável. 

Auto py to exe

Figura 4: Um GIF demonstrando a configuração de auto-py-to-exe

Quando você voltar ao diretório do auto-py-to-exe, haverá um diretório chamado output: é nesse diretório que está o nosso arquivo validation.exe. Selecione o arquivo para executá-lo, o que abrirá um console que solicitará que você digite um nome de arquivo:

arquivo de validação executável

Figura 5: Console retornado da execução do arquivo de validação executável. 

Basta digitar o nome do arquivo - neste exemplo, AB_NYC_2019.csv - e pressionar enter. Isso fechará o console e criará um novo arquivo no diretório de saída (onde está o arquivo executável) chamado validated_ab_nyc_2019.csv.

Concluir

Neste artigo, você aprendeu: 

  • O que é um arquivo Python
  • O que é um arquivo executável e por que ele pode ser útil 
  • Como converter um script Python em um executável usando o pyinstaller, que é uma ótima ferramenta para aqueles que se sentem mais confortáveis com as operações de linha de comando. 
  • Como converter um script Python em um executável usando o auto-py-to-exe, que fornece aos usuários uma interface gráfica do usuário (GUI) para configurar como o arquivo executável deve ser criado. 

Saiba mais sobre como você pode aproveitar o Python para fazer ciência de dados no curso de carreira DataCamps Data Scientists with Python.

Temas

Cursos para Python

curso

Intermediate Python

4 hr
1.1M
Level up your data science skills by creating visualizations using Matplotlib and manipulating DataFrames with 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

10 min

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

30 min

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

9 min

tutorial

Configuração do VSCode para Python: Um guia completo

Experimente uma maneira simples, divertida e produtiva de desenvolver com Python aprendendo sobre o VSCode e suas extensões e recursos.
Abid Ali Awan's photo

Abid Ali Awan

16 min

tutorial

Como usar o Pytest para testes de unidade

Explore o que é o Pytest e para que ele é usado, comparando-o com outros métodos de teste de software.
Kurtis Pykes 's photo

Kurtis Pykes

17 min

See MoreSee More