IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Lancement Python en PHP ne fonctionne pas [Python 3.X]


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 40
    Points : 28
    Points
    28
    Par défaut Lancement Python en PHP ne fonctionne pas
    Bonjour @ tous.

    J'ai développé un code en Python 3.5.2 que je dois utiliser sur un serveur fonctionnant par défaut sur la version 2.8 de Python.

    Pour lancer ce code j'utilise un fichier PHP dont le code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo '<pre>';
    system("cmd /c cd /d D:/web/script/python");
    system("cmd /c C:/Users/SIG-administrateur/AppData/Local/Programs/Python/Python35-32/python.exe D:/web/script/python/traitement_fichier_insee.py");
    echo '</pre>';
    Ce code a pour mission de traiter les fichiers ".xls", ".xlsx" et ".csv" présent dans le même répertoire que lui.

    Pour que cela fonctionne, j'utilise un certain nombre de modules appelées en début de code dont voici les quelques lignes du début:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import os
    import xlrd,openpyxl,csv
    from openpyxl import Workbook
    from datetime import datetime
    import pandas as pd
    from collections import OrderedDict
    import psycopg2
    from sqlalchemy import create_engine
     
    #Je récupère le répertoire courant
    cd=os.path.dirname(os.path.abspath(__file__))
    #Date du jour
    now = datetime.now()
     
    dirs = os.listdir(cd)
     
    # Homogénéisation des noms de fichiers et extensions
    for file in dirs:
     
        #Traitement "xls" & "xlsx"
        if file.endswith(".xlsx") or file.endswith(".xls"):
            print(file)
            # Ouverture des xls sur l'onglet "RTF"
            wbxls = xlrd.open_workbook(file)
            print(wbxls)
            nrows, ncols = 0, 0
            while nrows * ncols == 0:
                sheet = wbxls.sheet_by_name(sheetok)
                nrows = sheet.nrows
                ncols = sheet.ncols
                print(sheet)
                print(nrows)
                print(ncols)
    Lorsque je lance ce code via IDLE Python 35-32, aucun problème tout fonctionne, le traitement va jusqu'au bout.

    En revanche lorsque je le lance via PHP, le print(wbxls) ne me renvoi rien puisque le traitement s'arrête avant.

    J'ai l'impression que le fait de le lancer en PHP l'empêche d'utiliser correctement le module xlrd.

    Auriez-vous une piste qui me permettrait de lancer correctement mon py ?

    En vous remerciant par avance.

    Geo-x

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Avant de lancer votre script depuis PHP, il faut vous assurer qu'il fonctionne "hors" IDLE *et* lorsque le répertoire par défaut n'est pas celui du script i.e. dans des conditions semblables.... Puis vous poser des questions sur la liste de chaînes de caractères retournée par os.listdir(cd).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour wiztricks et merci de votre réponse.

    Ok je sors...

    Plus sérieusement je ne savais pas qu'il pouvait y avoir une différence entre l'IDLE et le passage via la console de commande.

    Votre conseil, je le garde précieusement !

    Geo-x

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sendmail de PHP ne fonctionne pas
    Par tom06440 dans le forum IIS
    Réponses: 4
    Dernier message: 13/09/2008, 17h10
  2. [Wamp] scripts en php ne fonctionnent pas sur wampserver
    Par unggoyer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 10/04/2008, 22h16
  3. Le test10() de test.php ne fonctionne pas.
    Par Laplix dans le forum PhpMyObject
    Réponses: 8
    Dernier message: 16/03/2008, 20h24
  4. Fonction mail() php ne fonctionne pas
    Par silverspike dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 18/12/2007, 10h11
  5. [UBUNTU] Le php ne fonctionne pas
    Par zuxion dans le forum Ubuntu
    Réponses: 29
    Dernier message: 07/06/2006, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo