2010-12-07 22 views
1

Dans setup.py l'appel à la fonction de configuration peut ressembler à ceci:Python: Comment afficher le texte de licence d'installation msi généré à partir setup.py

setup(name="my_package", 
     version="1.0", 
     packages = ['pack1', 'pack2'], 
     license = "We're all mad here" 
) 

Et j'utiliser la fonctionnalité très agréable pour générer un installateur .msi:

python setup.py bdist_msi 

est-il possible d'obtenir le texte de la licence « Nous sommes tous fous ici » à afficher dans l'assistant d'installation msi?

merci.

+0

L'auteur de bdist_msi est sur SO, je crois que le mainteneur de distutils2 l'est aussi. Il y a forcément des gens ici qui connaissent leur msi-fu assez pour guider un développeur Python. Si vous voulez vraiment que cela se produise, suivez les liens, améliorez la question (ajoutez quelques résultats de ce que vous avez essayé) et vous avez une chance. – TryPyPy

Répondre

1

Réponse optimiste et détaillée: vous extend distutils, créant une nouvelle commande basée sur bdist_msi. Vous devrez probablement créer un nouveau PyDialog (équivalent à) bdist_msi.add_ui. Je pense que vous devrez ajouter votre boîte de dialogue à UI Sequences. Le dialogue le plus simple semble être Prepare Dialog. Connaissant votre chemin msilib, sa classe Dialog et les références sous "Voir aussi" il serait certainement utile. Réponse réaliste: non, sans investir une énergie considérable dans celle-ci. Vous utilisez un autre mécanisme d'installation, vous éditez le fichier MSI, vous trouvez une astuce impliquant des fichiers .rtf. Mais étendre distutils est difficile, étendre bdist_msi est plus difficile.

+0

Il y a un exemple assez complet (http://hg.python.org/cpython/file/d7ae948d9eee/Tools/msi/uisample.py) dans le repo du code source de Python que vous pouvez utiliser comme début. En outre, [cx_Freeze] (http://cx-freeze.sourceforge.net/) personnalise bdist_msi, vous pouvez également jeter un coup d'œil à [ce qu'ils font] (https://bitbucket.org/anthony_tuininga/cx_freeze/ src/04ca56e81816bda14de37bfe824f7fad93f353ee/cx_Freeze/windist.py? at = par défaut). –