Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2373 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [python] PyRun_SimpleFile ne fait rien

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[python] PyRun_SimpleFile ne fait rien

n°2360471
jungledede
Posté le 24-08-2020 à 13:54:53  profilanswer
 

Hello,
 
J'ai un soucis que je ne comprends pas.
 
Je veut exécuter un script python depuis un programme en C.
J'arrive à faire un print python depuis du C, mais si je veu exécuter un fichier cela ne fonctionne pas.
La doc python est un peut light je trouve  [:baragor]  
 
voici le code

Code :
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <Python.h>
  4. //# -*- coding: utf-8 -*-
  5. int main(int argc,char *argv[])
  6. {
  7. char *file="toto.py";
  8. FILE* fp;
  9. Py_Initialize();
  10. //ça, ça marche  
  11. PyRun_SimpleString("print('Hello World from Embedded Python!!!')" );
  12. fp = _Py_fopen(file, "r" );
  13. printf("fp = %d\n", (int)fp);
  14.    
  15. //retourne toujours 0 ici et rien d'afficher dans le terminal.
  16. printf("PyRun %d\n",PyRun_SimpleFile(fp, file));
  17. Py_Finalize();
  18. return 0;
  19. }


 
le résultat : (désoler les hosts d'image sont proxytaffé)
 

Hello World from Embedded Python!!!
fp = 8521600
PyRun 0
 
Process returned 0 (0x0)   execution time : 0.143 s
Press any key to continue.


 
 
J'ai bien un handle pour "fp". je ne sais pas si le 0 de valeur return du Pyrun est bon signe ou pas.
 
Le pfichier .py

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 15 11:29:10 2020
 
@author:*****
"""
 
print("bonjour" )


 
 
Des idées?  [:mr mala:1]  


---------------
Monde de merde | Restez curieux
mood
Publicité
Posté le 24-08-2020 à 13:54:53  profilanswer
 

n°2360551
rat de com​bat
attention rongeur méchant!
Posté le 24-08-2020 à 21:02:15  profilanswer
 

Connais pas le serpent, mais au pif:
La doc dit que 0 veut dire "pas d'erreurs".
La doc (qui en effet est très light) dit aussi que sous Windows il vaut mieux utiliser fopen(..., "rb" ) (accent sur le "b" ). Et tu as bien un saut de ligne à la fin de ton fichier .py?

n°2360698
jungledede
Posté le 25-08-2020 à 20:58:18  profilanswer
 

Ah, pas con tient de passer par fOpen. Et ton b me fait tilter sur le fameux binary que je voyais.

 

J'ai posté pour le compte de ma stagiaire. Je transmeterais.

 

Entre temps on essaye de ne pas exécuter le fichier complet mais certaines fonctions.

 

Bon c'est pas si simple de récup une valeur en sortie de fonction.
Ils pourais avoir une meilleur docs. Pour le coup National Instrument et msdn sont bien foutu.

 


---------------
Monde de merde | Restez curieux
n°2360713
rat de com​bat
attention rongeur méchant!
Posté le 25-08-2020 à 22:16:05  profilanswer
 

fopen() ou _Py_fopen() j'en sais rien (ils en parlent dans la doc?), mais la doc dit qu'il faut rajouter le "b".


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [python] PyRun_SimpleFile ne fait rien

 

Sujets relatifs
[Python] Programmation sur Windows[Python] Projets de programmation pour débutant
[Python] import error avec virutalenvOuvrir fichier .odb avec Python
Script python qui joue à un autre script python[Python] Utilisation d'un code existant
[Python] zipfile - decompresser sans chemin[resolu] déclaration en python
plus rien après une boucle foreachouverture de fichier en python 3 : erreur
Plus de sujets relatifs à : [python] PyRun_SimpleFile ne fait rien


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR