[Python] Strana eccezione

piergiorgio pancino piertoni a yahoo.it
Mar 6 Maggio 2014 10:28:40 CEST


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
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140506/e3b45517/attachment-0001.html>


Maggiori informazioni sulla lista Python