Python: Creación de un archivo ejecutable independiente en MacOS con py2app

Tengo una aplicación en un script de python my_app.py y quiero hacer un ejecutable independiente con MacOS (10.14). Siguiendo el video-tutorial aquí , ingresé secuencialmente los siguientes comandos:

 pip install virtualenv virtualenv venv --system-site-packages source venv/bin/activate pip install py2app cd /path/to/my_app.py python setup.py py2app -A 

con el siguiente archivo setup.py :

 from setuptools import setup APP = ["my_app.py"] DATA_FILES = [] OPTIONS = { "argv_emulation": True, "packages": ["certifi"], } setup( app = APP, data_files = DATA_FILES, options = {"py2app": OPTIONS}, setup_requires = ["py2app"] ) 

pero recibió el siguiente mensaje de error:

 Traceback (most recent call last): File "setup.py", line 13, in  setup_requires = ["py2app"] File "/Users/mymac/venv/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup return distutils.core.setup(**attrs) File "/Users/mymac/anaconda3/lib/python3.7/distutils/core.py", line 148, in setup dist.run_commands() File "/Users/mymac/anaconda3/lib/python3.7/distutils/dist.py", line 966, in run_commands self.run_command(cmd) File "/Users/mymac/anaconda3/lib/python3.7/distutils/dist.py", line 984, in run_command cmd_obj.ensure_finalized() File "/Users/mymac/anaconda3/lib/python3.7/distutils/cmd.py", line 107, in ensure_finalized self.finalize_options() File "/Users/mymac/venv/lib/python3.7/site-packages/py2app/build_app.py", line 567, in finalize_options if isinstance(self.plist, plistlib.Dict): AttributeError: module 'plistlib' has no attribute 'Dict' 

Con ese mensaje de error, encontré esa página de github y escribí el siguiente código:

 brew install qt # will install qt-5.xx brew install libxml2 make qt5py3 python3 labelImg.py python3 labelImg.py [IMAGE_PATH] [PRE-DEFINED CLASS FILE] As a side note, if mssing pyrcc5 or lxml, try pip3 install pyqt5 lxml 

Sin embargo, después de entrar en la línea, make qt5py3 , obtengo:

 make: *** No rule to make target `qt5py3'. Stop. 

También probé los siguientes comandos:

 brew install python3 pip install pipenv pipenv --three pipenv shell pip install py2app pip install PyQt5 lxml make qt5py3 rm -rf build dist python setup.py py2app -A mv "dist/labelImg.app" /Applications 

Pero también consiguió

 make: *** No rule to make target `qt5py3'. Stop. 

después de entrar en la línea make qt5py3

Publiqué un problema en github

¿Qué estoy haciendo mal?

plistlib.Dict estaba disponible pero no documentado. En Python 3.4 fue finalmente documentado ; También se documenta que está en desuso desde la versión 3.0.

En Python 3.7 ya no está documentado y quizás se haya eliminado de la biblioteca plistlib .

Esto significa que py2app actualmente no es compatible con Python 3.7. Encontré este problema , se informó hace medio año y se resolvió unos días después. La resolución es: actualice py2app a la última versión 0.15 con el siguiente comando:

 pip3.7 install -U py2app 

Verifique la versión con

 pip show py2app