Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utilisation subprocess et données entrée

    24 janvier 2024 à 9:57:35

    Bonjour à tous,
    J'ai commencé à coder en python en 2024 (une bonne résolution n'est-ce pas ?) pour un projet professionnel et je suis actuellement bloqué avec l'utilisation de la fonction subprocess.
    En effet, je dois exécuter un script python (écrit en CPython avec les packages CPython classiques : numpy, scipy...) dans un environnement qui ne supporte pas CPython. Pas de problème, j'ai une astuce : subprocess.
    En effet, comme vous le savez cette fonction permet d'exécuter un code avec une version de python spécifiée par exemple. Voici juste après mon code :

    import os
    import subprocess
    os.chdir(r"My_code_location")
    Python312 = r"C:\Users...\AppData\Local\Programs\Python\Python312\python.exe"
    subprocess.call([Python312,'pyNukiyama.py'])

    Avec ce code je peux exécuter mon script pyNukiyama.py dans mon environnement qui ne supporte pas ce dernier code avec python 3.12 installé sur l'ordinateur. Super, ça marche !
    Cependant, j'ai maintenant besoin d'interagir avec ce script pyNukiyama.py pour modifier les entrées utilisées dans ce dernier script (en gros, effectuer une boucle avec les valeurs envoyées dans pyNukiyama.py et récupérer les valeurs de sortie.
    D'où ma question : comment faire ?
    Peut-être, modifier le script pyNukiyama.py avant de lancer le sous-processus avec ? Ou bien, ne pas utiliser un script sauvegardé mais directement le code dans le sous-processus (pyNukiyama ne contient que 10 lignes...) ? Une autre idée ?

    Merci pour votre aide !

    Bonne journée !
    Pierre

    • Partager sur Facebook
    • Partager sur Twitter
      24 janvier 2024 à 13:33:52

      tu as testé ton script directement dans ton environnement ? quels erreurs retournées si il y en a?

      c'est quoi cet environnement ?

      • Partager sur Facebook
      • Partager sur Twitter
        24 janvier 2024 à 13:51:22

        Bonjour Umfred,

        Merci pour ton retour ! En effet, j'ai essayé d'importer mon code pyNukiyama dans mon environnement directement mais hélas il me renvoie qu'il ne connait pas les packages dont j'ai besoin (numpy, scipy...). En effet, l'environnement en question fonctionne sous IronPython et ces derniers paquets ne sont pas disponibles...

        Merci de ton aide,

        Pierre

        • Partager sur Facebook
        • Partager sur Twitter
          24 janvier 2024 à 17:25:28

          il faut modifier ton script pour qu'il prenne ses inputs sur la ligne de commande, et renvoyer les résultats sur la sorties standard par exemple, subprocess permet de récupérer le résultat (en bytes ou string) qu'il faudra traiter ensuite si besoin.

          Me semble-t-il

          Edit: Des réponses plus précises et plus avancées ont été faites sur developpez => https://www.developpez.net/forums/d2161371/autres-langages/python/general-python/utilisation-subprocess-donnees-entree/#post11999003 

          -
          Edité par umfred 24 janvier 2024 à 18:23:27

          • Partager sur Facebook
          • Partager sur Twitter
            25 janvier 2024 à 8:33:18

            Cher Umfred,

            Merci pour ton retour. Je vais continuer à travailler sur cela aujourd'hui. En effet, des points plus avancés ont été spécifiés sur developpez.net :)

            Merci à toi !

            Pierre

            • Partager sur Facebook
            • Partager sur Twitter

            Utilisation subprocess et données entrée

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown