4 votes

Comment construire du Python intégrable

Je me demande comment construire un Python intégrable pour Windows. Je n'ai pu trouver aucune information ou configuration de construction pour ce paquet particulier.

La raison de ma question est que je pourrais utiliser la même variante pour Mac et Linux.

2voto

hoefling Points 10709

Récemment, j'ai dû construire un zip intégrable pour Python 3.5.6 64bit (puisque la page officielle de téléchargement ne les propose pas pour Python supérieur à 3.5.4), voici les étapes.

Conditions préalables (installation unique)

Installer

  1. git

  2. TortoiseSVN

  3. Visual Studio C++ Build Tools 2015 (vous pouvez avoir besoin de la version 2017 pour construire les dernières versions de Python) 1

  4. Si vous n'avez pas Sphinx installé, installez-le et ajoutez sphinx-build a PATH 2 :

    > python -m pip install --user sphinx
    > set PATH=%PATH%;C:\Users\jenkins\AppData\Roaming\Python\Python35\Scripts
  5. Si vous n'avez pas blurb installé, l'installer, ajouter blurb a PATH si nécessaire (si vous avez fait l'étape précédente, vous avez déjà le bon numéro de téléphone de l'entreprise). PATH ) :

    > python -m pip install --user blurb
    > set PATH=%PATH%;C:\Users\jenkins\AppData\Roaming\Python\Python35\Scripts

Configuration de l'environnement de construction

  1. Clonez le dépôt CPython. Ici, je clone seulement le tag dont j'ai besoin :

    > git clone --depth 1 --branch v3.5.6 https://github.com/python/cpython
  2. Dans le répertoire repo, générez NEWS fichier 3, 4 :

    > blurb merge -f Misc\NEWS

Construire

Maintenant vous pouvez déclencher la construction :

> Tools\msi\buildrelease.bat -x64 --skip-nuget --test testout

Remplacer -x64 con -x32 si vous ciblez l'archive 32 bits. --skip-nuget ne construira pas le programme d'installation MSI. --test testout déclenchera les tests de l'installateur ; vous pouvez les ignorer si vous le souhaitez.

Une fois la construction terminée, vérifiez l'artefact de construction. PCbuild\amd64\en-us\python-3.5.6-embed-amd64.zip . C'est votre zip intégrable.

Une fois que la construction a réussi pour la première fois, vous pouvez ignorer la construction de la documentation dans les constructions futures pour accélérer davantage, tant que les artefacts de la construction de la documentation restent dans le dépôt :

> Tools\msi\buildrelease.bat -x64 --skip-doc --skip-nuget --test testout

1 Assurez-vous de sélectionner "Custom" dans le programme d'installation de VC++ Build Tools et de vérifier toutes les options ; sinon, vous risquez d'obtenir des erreurs de construction telles que The code execution cannot proceed because ucrtbased.dll was not found etc. Je ne suis pas du tout un expert de Windows, j'ai juste installé tout ce qui était possible pour me débarrasser des erreurs.

2 En regardant le buildrelease.bat il semble que vous pouvez sauter la construction de la doc avec --skip-doc mais lorsque je l'utilise, j'obtiens l'erreur suivante

"C:\Users\jenkins\projects\cpython\Tools\msi\bundle\releaselocal.wixproj" 
(Rebuild target) (1) ->
  "C:\Users\jenkins\projects\cpython\Tools\msi\doc\doc.wixproj" (Rebuild target) (7) ->
(Link target) ->
  C:\Users\jenkins\projects\cpython\Tools\msi\doc\doc_files.wxs(8): error 
LGHT0103: The system cannot find the file 'python356.chm'. [C:\Users\jenkins\projects\cpython\Tools\msi\doc\doc.wixproj]

et la construction s'arrête avec une erreur. Si vous parvenez à contourner ce problème sans construire la documentation initiale (de sorte que les fichiers de la documentation soient disponibles dans le répertoire de construction), vous pouvez ignorer la fonction Sphinx installer.

3 Sinon, j'obtiens l'erreur de construction

"C:\Users\jenkins\projects\cpython\Tools\msi\bundle\releaselocal.wixproj" (Rebuild target) (1) ->
"C:\Users\jenkins\projects\cpython\Tools\msi\exe\exe.wixproj" (Rebuild target) (8) ->
  C:\Users\jenkins\projects\cpython\Tools\msi\exe\exe_files.wxs(9): error 
LGHT0103: The system cannot find the file '!(bindpath.src)Misc\NEWS'. [C:\Users\jenkins\projects\cpython\Tools\msi\exe\exe.wixproj]

4 Vous pouvez remplacer la commande par une commande appropriée make mais j'étais trop paresseux pour déchiffrer l'invocation de Doc\Makefile . Après tout, les nouvelles n'atterriront pas dans le zip intégrable de toute façon ; il s'agit seulement de rendre l'image de l buildrelease.bat heureux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X