Partage
  • Partager sur Facebook
  • Partager sur Twitter

lancement script python depuis server nodejs

probleme d'execution du script sous windows

Sujet résolu
    31 mars 2021 à 19:33:36

    Bonjour,

    Je poste ce sujet car j'ai un problème sur le lancement d'un script python via nodejs. Problème que je ne comprends absolument pas... En effet car le script python fonctionne très bien quand je l’exécute depuis l'invite de commande, mais quand je le lance depuis mon serveur nodejs rien...

    Du coup, je me dis que c'est la commande de mon nodejs qui est mauvaise, mais quand je lance un autre script python depuis la commande nodejs alors ce script python s’exécute parfaitement.. tout est identique, seul le nom du script est différent (mêmes répertoires etc...).

    ça fait maintenant 2 jours que je gratte, essaie diverses manip, etc... en exécutant même un fichier .bat qui lance le script, mais rien n'y fait. Le serveur ne veut pas lancer ce fameux script python !

    Désespéré j'en appel donc aux forums, afin de m'indiquer une orientation de recherche pour afin trouver ce qui bloque.

    Je mettrais les codes dans la soirée.

    En vous remerciant.

    Le code server nodejs (version allégée) :

    const express = require('express');
    const app = express();
    const bodyParser = require('body-parser');            
    const formidable = require('formidable');
    const path = require('path');
    const PORT = 8000;
    var fs = require('fs');
    const {execFile, exec, spawn} = require ('child_process');
    var cp = require ('child_process');
    
    
    app.use(express.static('public'));
    app.use(bodyParser.urlencoded({ extended: true }));   
    
    
    
    app.get('/', function (req, res){
        res.sendFile(__dirname + '/public/index.html');  	
    });
    
    
    
    function runScript(){                                   
        return spawn('python', [
            path.join(__dirname + '/public/script.py'), 
        ]);
    }
    
    
    app.post('/start', function(req, res){                  
        const subprocess = runScript()
        res.sendFile(__dirname + '/public/index.html');
    	console.log('script launched')
    });
    
    
    app.listen(8000, function () {
    	
        console.log('Server Started on Port : 8000 !')
    })
    

    page html :

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    
       <head>
            <meta name="description" content="Interfac" />
            <meta name="Copyright" CONTENT="ttom" />
    		<meta name="expires" CONTENT="never" />
    		<meta name="audience" CONTENT="all" />
    		<meta name="Language" CONTENT="Fr" />
       
           <title>Map</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
    
           <link rel="stylesheet" media="screen" type="text/css" title="Design" href="form.css" />
           <link rel="SHORTCUT ICON" href="favicon.ico">
    
       </head>
       <body>
    	   	<div id="main">
    		<img src="tom.png" title="  " alt="  " />
    
    			
    			<div id="center">
    				<div id="left">
    					
    				</div>
    				
    				<div id="right">
    					<form action="/start" method="post">	
    						<input title="Clic to Start recording" class="favorite styledstart" type="submit" id="state" value="START">			
    			                </form>
    
    				</div>
    			</div>
    			
    			<div id="bottom">
    				
    			</div> 	
    			
    		
    		</div> 
        </body>
    </html>
    
    

    Du coup après plusieurs tests, il s'avère que le problème venait de mon fichier python...

    Le server nodejs n'accepte pas l'execution du script python avec des adresses du type : " ../file/fichier.txt"

    il préfère l'adresse complete : "c:/Users/file/fichier.txt"

    oui.. ce qui fonctionne sous linux ne l'est pas forcément sous windows..

    Si cela peut aider quelqu'un.

    Bonne journée.

    -
    Edité par WanDan 1 avril 2021 à 12:27:08

    • Partager sur Facebook
    • Partager sur Twitter

    lancement script python depuis server nodejs

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown