Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Peut-on créer des .dmg à partir d'application Python pour Mac OS X ?

+3 votes

J'aimerais bien pouvoir distribuer des scripts d'administration système sur des Max OS X sans demander à l'utilisateur de taper des lignes de commandes.

J'utilise une application qui permet de déployer des .dmg à distance sur un Mac.

Est-il possible de générer des fichiers dmg avec Python ?

demandé 13-Jan-2015 par DoubleNain (1,718 points)
edité 13-Jan-2015 par max

1 Réponse

+9 votes
 
Meilleure réponse

py2app, ça marche bien. Y compris pour créer des exécutables nécessitant des librairies un peu exotiques comme pygame.

1) installation de py2app

Avec pip, ou autre chose.
https://pythonhosted.org/py2app/install.html#installing-with-pip

2) création d'un .app

Se placer dans le répertoire contenant le fichier "main.py" (fichier python constituant le point d'entrée de l'application).

Renommer "main.py" en "NomDeVotreAppli.py". C'est le moyen le plus simple de créer un .app ayant le bon nom dès le départ.

Créer le fichier "pygame2macapp.py", avec le contenu suivant :

"""
Usage:
python pygame2macapp.py py2app
"""
from setuptools import setup
APP = ['NomDeVotreAppli.py']
DATA_FILES = ['rep1', 'rep2', 'readme.txt']
OPTIONS = {'argv_emulation': True}
setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

"rep1", "rep2" et "readme.txt" sont des fichiers et des répertoires, situés dans le répertoire courant. Ils contiennent les données nécessaires à l'appli (images, sons, ...). Ces éléments seront incorporés dans le .app.

Exécuter la commande suivante :

python pygame2macapp.py py2app

Deux sous-répertoires, "build" et "dist" sont créés, l'app se trouve dans "dist/NomDeVotreAppli.app". On peut tester son fonctionnement.

3) Transformation du .app en .dmg

Aller dans le répertoire "dist", et exécuter la commande suivante (elle est native dans Mac OSX) :

hdiutil create -imagekey zlib-level=9 -srcfolder NomDeVotreAppli.app NomDeVotreAppli.dmg
répondu 13-Jan-2015 par recher (380 points)
sélectionné 15-Jan-2015 par DoubleNain

Merci pour cette réponse limpide qui m'a beaucoup aidée.

...