Compatibilité avec PyInstaller et cx_Freeze

Compatibilité avec PyInstaller et cx_Freeze

Aspose.Slides for Python via .NET extensions sont des extensions C Python standard, elles peuvent donc être gelées comme dependances de programme avec des outils comme PyInstaller et cx_Freeze (ou similaires). Cela vous permet de creer des fichiers executables a partir de vos scripts Python. Ces outils sont appeles “freezers” parce qu ils regroupent votre code et ses dependances dans un seul fichier distribuable qui s execute sur d autres machines sans requerir d installation de Python ou de bibliotheques supplementaires. Cette approche simplifie la distribution de vos applications Python.

Le gel d une extension Aspose.Slides for Python via .NET en tant que dependance est illustre ci-dessous avec un programme simple qui utilise Aspose.Slides.

PyInstaller

En general, rien de special n est requis lors de l empaquetage d un programme qui depend d une extension Aspose.Slides for Python via .NET. Lorsqu un programme importe l extension de maniere visible pour PyInstaller, l extension sera integree au programme. Comme Aspose.Slides for Python via .NET inclut des hooks PyInstaller, ses dependances sont detectees automatiquement et copiees dans le paquet.

slide_app.py:

import aspose.slides as slides

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    slide.shapes.add_auto_shape(slides.ShapeType.LINE, 50.0, 150.0, 300.0, 0.0)
    presentation.save("NewPresentation.pptx", slides.export.SaveFormat.PPTX)
$ pyinstaller slide_app.py

Cependant, PyInstaller peut parfois manquer des importations cachees - des modules importes dynamiquement ou indirectement par votre code. Pour inclure une importation cachee, utilisez les options de PyInstaller. Les dependances de l extension sont specifiees dans les hooks PyInstaller fournis avec Aspose.Slides for Python via .NET.

slide_app.spec:

a = Analysis(
    ['slide_app.py'],
    ...
    hiddenimports=['aspose.slides']
)
$ pyinstaller slide_app.spec

cx_Freeze

Pour geler un programme avec cx_Freeze, configurez-le afin d inclure le package racine de l extension Aspose.Slides for Python via .NET que vous utilisez. Cela garantit que l extension et tous les modules dependants sont copies dans la construction avec votre application.

Using the cxfreeze Script

$ cxfreeze slide_app.py --packages=aspose

Using the Setup Script

setup.py:

executables = [Executable('slide_app.py')]

options = {
    'build_exe': {
        'packages': ['aspose'],
    }
}

setup(...
    options=options,
    executables=executables)
$ python setup.py build_exe

FAQ

Ai-je besoin de Microsoft PowerPoint ou de .NET installe sur la machine de l’utilisateur ?

Non, PowerPoint n est pas requis. Aspose.Slides est un moteur autonome ; le package Python fournit tout le necessaire sous forme d une extension pour CPython. L utilisateur n a pas besoin d installer .NET separement.

Comment dois-je correctement attacher la licence a une application gelee ?

Vous pouvez placer le fichier XML de licence a cote de l executable ou l integrer en tant que ressource et le charger a partir d un chemin accessible avant le premier appel API. Important: ne modifiez pas le contenu du XML (pas meme les sauts de ligne).

Que faire si les polices s affichent différemment apres la construction par rapport au developpement ?

Assurez-vous que les polices que vous utilisez sont disponibles dans l environnement cible (integrees ou installees system) et que leurs chemins sont correctement resolus a l execution; le comportement des polices est particulierement sensible sous Linux.