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
-
git
-
TortoiseSVN
-
Visual Studio C++ Build Tools 2015 (vous pouvez avoir besoin de la version 2017 pour construire les dernières versions de Python) 1
-
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
-
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
-
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
-
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.