Échec de la création du pipeline en raison d’une erreur Python non disponible

Dernière mise à jour : 2023-12-05

Correction de l’échec de Pipeline Build en raison d’une erreur Python en créant un projet Maven qui utilise le module externe exec pour installer Python3.

Description

Environnement

AEM as a Cloud Service

Problème/Symptômes

La version 3.10 de Python doit être installée, car le code frontal nécessite que Python crée l’application.

Cependant, lors du déploiement du pipeline dans Cloud Manager, la génération échoue avec l’erreur suivante :

[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! configure error [ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack Error: Could not find any Python installation to use[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at PythonFinder.fail (/build_root/build/<project>/ui.frontend/node_modules/node-gyp/lib/find-python.js:330:47)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at PythonFinder.runChecks (/build_root/build/<project>/ui.frontend/node_modules/node-gyp/lib/find-python.js:159:21)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at PythonFinder.<anonymous> (/build_root/build/<project>/ui.frontend/node_modules/node-gyp/lib/find-python.js:266:16)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at PythonFinder.execFileCallback (/build_root/build/<project>/ui.frontend/node_modules/node-gyp/lib/find-python.js:297:7)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:317:7)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:365:28)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1067:16)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! System Linux 5.10.102.2-microsoft-standard[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! command "/build_root/build/<project>/ui.frontend/node/node" "/build_root/build/<project>/ui.frontend/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! cwd /build_root/build/<project>/ui.frontend/node_modules/node-sass[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! node -v v16.0.0[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! node-gyp -v v8.4.1[ Exec Stream Pumper]  [ INFO]  npm ERR! gyp ERR! not ok [ Exec Stream Pumper]  [ INFO]  npm ERR! Build failed with error code: 1[ Exec Stream Pumper]  [ INFO]  [ Exec Stream Pumper]  [ INFO]  npm ERR! A complete log of this run can be found in:[ Exec Stream Pumper]  [ INFO]  npm ERR!     /root/.npm/_logs/2023-11-06T17_43_49_109Z-debug.log

Résolution

Si Python n’est pas installé, Maven peut être installé en procédant comme suit :.

À créer un projet Maven ; qui utilise le module externe exec pour installer Python3, une configuration vers pom.xml doit être effectuée.

Exemple :

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>PythonInstaller</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>
<build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.6.0</version><executions><execution><id>apt-get-update</id><phase>validate</phase><goals><goal>exec</goal></goals><configuration><executable>apt-get</executable><arguments><argument>update</argument></arguments></configuration></execution><execution><id>install-python3</id><phase>validate</phase><goals><goal>exec</goal></goals><configuration><executable>apt-get</executable><arguments><argument>install</argument><argument>-y</argument><argument>python3</argument></arguments></configuration></execution></executions></plugin></plugins></build></project>

La configuration Maven exécute la variable apt-get mettre à jour apt-get install -y python3 pendant la phase de validation du cycle de vie de la version Maven. Notez également que cela ne fonctionne que si la version est exécutée dans un environnement où la fonction apt-get est disponible et en cours d’exécution. La version doit disposer des autorisations suffisantes pour installer les packages.

De même, si vous devez installer Python 3.11, le fichier pom.xml doit se présenter comme suit :

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>PythonInstaller</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging>
<build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.6.0</version><executions><execution><id>apt-get-update</id><phase>validate</phase><goals><goal>exec</goal></goals><configuration><executable>apt-get</executable><arguments><argument>update</argument></arguments></configuration></execution><execution><id>install-python3.11</id><phase>validate</phase><goals><goal>exec</goal></goals><configuration><executable>apt-get</executable><arguments><argument>install</argument><argument>-y</argument><argument>python3.11</argument></arguments></configuration></execution></executions></plugin></plugins></build></project>

 

Sur cette page