Python >> Tutorial de Python >  >> Python

¿Cómo crear una aplicación para mac os a partir de un script de python que tenga una interfaz gráfica de usuario de PySide2?

Requisitos

  • funciona con Python 3.8.5
  • macOS 10.15.7 Catalina
  • usa PySide2 y py2app

Problemas

  • PySide2 debe agregarse en OPCIONES a la lista de paquetes
  • cuando se ejecuta la aplicación, todavía se produce un error:Library not loaded: @rpath/libshiboken2.abi3.5.15.dylib, Reason: image not found

Solución

El setup.py ligeramente modificado podría verse así:

from setuptools import setup

APP = ['app.py']
DATA_FILES = []
OPTIONS = {
    'packages': ['PySide2'],
    'iconfile': 'some_icon.icns',
    'plist': {
        'CFBundleDevelopmentRegion': 'English',
        'CFBundleIdentifier': "com.ballesta.xxx",
        'CFBundleVersion': "1.0.0",
        'NSHumanReadableCopyright': u"Copyright © 2020, Serge Ballesta, All Rights Reserved"
    }
}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

Además, se han agregado una definición de icono y algunas entradas de plist para obtener información básica.

La compilación completa se activa mejor con una secuencia de comandos que podría tener este aspecto:

#!/bin/sh
python3 -m venv venv
. venv/bin/activate
pip install PySide2
pip install py2app
python setup.py py2app      
cp ./venv/lib/python3.8/site-packages/shiboken2/libshiboken2.abi3.5.15.dylib ./dist/app.app/Contents/Resources/lib/python3.8/lib-dynload/shiboken2

Prueba

Aquí la captura de pantalla de una prueba: