es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Empaqueta mi proyecto de Python en un archivo exe que no requiera ninguna instalación en el lado del cliente.

He desarrollado una aplicación en Python que registra las acciones de los usuarios en la web utilizando los siguientes paquetes:

python==3.7.9
selenium==4.0.0
seleniumbase==2.1.9
Tinkerer==1.7.2
tqdm==4.62.3
validators==0.18.2

He intentado usar muchas aproximaciones diferentes para convertirla en un archivo exe que no requiera nada instalado en el lado del cliente. He intentado lo siguiente:
1. pyvan y no funcionó, así que abrí un problema al autor del paquete.
2. pyinstaller siempre me dice que la biblioteca SeleniumBase es desconocida y la solución es instalarla en el lado del cliente, LO CUAL NO ES UNA OPCIÓN.
3. pipenv tampoco funcionó.
4. PyOxidizer y py2exe tampoco funcionaron para mí.

Me gustaría convertir esa aplicación de Python en un archivo exe (no importa si es un archivo único o una carpeta) siempre y cuando no requiera instalación en el lado del usuario.

Estructura del repositorio:

├── requirements.txt
├── main.py
├── logo.ico
├── web_actions_recorder
|   ├── main.py
|   ├── __init__.py
└── README.md
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto de TI especializado en Python, Conda, PyInstaller, PyEnv y Python-Poetry, sugeriría los siguientes pasos para convertir la aplicación de Python en un archivo exe que no requiere que se instale nada en el lado del cliente:

    1. Cree un nuevo entorno virtual utilizando pyenv para administrar la versión de Python que se está utilizando:
      pyenv virtualenv 3.7.9 web_actions_recorder
      
    2. Instala los paquetes necesarios usando pip:
      pip install selenium seleniumbase Tinkerer tqdm validators
      
    3. Cree un nuevo archivo llamado setup.py con el siguiente contenido:
      from setuptools import setup
      import sys
      import os.path
      
      if sys.platform.startswith("win"):
         entry_point = "main:run_web_actions_recorder"
      else:
         entry_point = None
      
      APP = ["main.py"]
      APP_NAME = "WebActionsRecorder"
      DATA_FILES = ["logo.ico"]
      OPTIONS = {"argv_emulation": True,
                "iconfile": "logo.ico"}
      
      setup(
         name=APP_NAME,
         app=APP,
         data_files=DATA_FILES,
         options={"py2app": OPTIONS},
         setup_requires=["py2app"],
         entry_points={
             "gui_scripts": [
                 "web_actions_recorder = main:run_web_actions_recorder"
             ]
         }
      )
      
    4. Ejecute el siguiente comando para generar el archivo ejecutable:
      py2applet --make-setup main.py
      python setup.py py2app -A
      
    5. Una vez que se genera el archivo ejecutable, copie la carpeta web_actions_recorder del repositorio en el mismo directorio que la carpeta dist.
      ├── dist
      ├── web_actions_recorder
      └── logo.ico
      
    6. Comprima toda la carpeta dist junto con la carpeta web_actions_recorder y distribúyala al cliente.

    Siguiendo estos pasos, la aplicación de Python puede convertirse en un archivo exe que no requiere que se instale nada en el lado del cliente. Además, el uso de py2app y pyenv asegura que la aplicación se pueda ejecutar en múltiples plataformas sin necesidad de ninguna configuración o instalación adicional.

Comments are closed.