Ciao a tutti,
sto scrivendo un bridge che importa all'interno di un database alcuni dati da
files csv.
Ho testato le varie parti singolarmente (download ftp, parsing csv/xml,
inserimento dei record nel database).
Ora sto unendo le varie parti per creare l'automatismo e mi ritrovo con uno
strano errore che sembra dovuto al garbage collector in fase conclusiva.
Non capisco se questo sia dovuto ad un errore di Python (sto usando Portable
Python 3.2.5.1) che ho notato a volte ha dei comportamenti strani a seconda se
utilizzo l'interprete remoto o esterno.
Se lo eseguo dalla riga di comando i passaggi sembrano essere tutti in regola,
ma alla fine mi da:
Exception IndexError: IndexError:('tuple index out of range'), in <module
'threading' from 'C:\....\Portable Python 3.2.5.1\App\lib\threading.py>
Se lo eseguo dall'editor alla stessa maniera i passaggi sembrano essere fatti
tutti, ma alla fine mi da quanto segue:
Exception IndexError: 'tuple index out of range' in 'garbage collection' ignored
Traceback (most recent call last):
File "<string>", line 73, in execInThread
File "<string>", line 44, in __call__
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\netref.py", line 196, in __call__
return syncreq(_self, consts.HANDLE_CALL, args, kwargs)
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\netref.py", line 71, in syncreq
return conn.sync_request(handler, oid, *args)
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\protocol.py", line 431, in sync_request
self.serve(0.1)
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\protocol.py", line 379, in serve
data = self._recv(timeout, wait_for_lock = True)
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\protocol.py", line 337, in _recv
data = self._channel.recv()
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\channel.py", line 50, in recv
header = self.stream.read(self.FRAME_HEADER.size)
File "C:\Users\ppancino.SBP\Portable Python
3.2.5.1\App\lib\site-packages\rpyc\core\stream.py", line 166, in read
raise EOFError(ex)
EOFError: [Errno 10054] Connessione in corso interrotta forzatamente dall'host
remoto
Ora, è chiaro che le informazioni sono poche, non posso certo postarvi tutto il
codice, ma vorrei sapere se questo tipo di errore vi dice qualcosa dal momento
che non ho idea di cosa possa essere.
Se può essere utile vi posto il codice dello script che mette assieme le altre
librerie che ho sritto per avviare l'importazione automatizzata.
import ftp_connection
from rapportini_parsing import rapportini_parser
import SQLServer_connection
import sys
if __name__ == '__main__':
try:
#iterabile contenente vari file rapportino
csv_rapportino=ftp_connection.ftp_importazione()
#parsing rapportini
#creazione oggetto gestione database
db=SQLServer_connection.DB_connection().connect()
for rapportino in csv_rapportino:
#a ciascun rapportino corrisponde una stringa contenente a sua
volta uno o piu' rapportini
for element in rapportini_parser(rapportino).rapportini_output:
SQLServer_connection.inserimento_rapportino(db, element,commit=
"FALSE")
except:
sys.exit()
finally:
csv_rapportino.__exit__()
db.__exit__()
Grazie per qualunque eventuale suggerimento
Piergiorgio
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python