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