Python - python termina script sin marcar algun error

 
Vista:

python termina script sin marcar algun error

Publicado por rodrigo (3 intervenciones) el 21/04/2020 01:32:16
Buen dia, soy nuevo con python, tengo un problema tengo un script que termina inesperadamente y no manda ningun error ni nada, ya coloque el fragmento de codigo entre un try:, except, pero nada

incluso he ejecutado el codigo con ipython y tampoco nada, ningun error ni nada que puedo hacer?

tambien tengo la duda aunque acabo de instalar python me indica a cada rato que me falta el modulo django esto por que??

de antemano gracias por su atension a nota el segmento de codigo que falla estaba asi:

1
2
3
print("validar")
data_frame.to_excel("nombreexcel.xlsx")
print("ya no ejecuta, aqui termina")

lo coloque como:

1
2
3
4
5
6
try:
    print("validar")
    data_frame.to_excel("nombreexcel.xlsx")
except Exception as e:
   print(e)
print("ya no ejecuta, aqui termina")


Pero aun asi solo ejecuta hasta "validar"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

python termina script sin marcar algun error

Publicado por tincopasan (1085 intervenciones) el 21/04/2020 01:47:35
hola:
estás ejecutando un script que requiere de pandas, y aún así nunca te andará porque está mal declarada, si sos nuevo y queres usar pandas, como en este caso, lee la documentación, que es abundante.No puedo decirte porque no marca error porque no uso ipython, pero como ejemplo si usas solo esa línea directamente en el interprete de python da:
>>> data_frame.to_excel("nombreexcel.xlsx")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'data_frame' is not defined


o sea, ya es un indicio del error.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

python termina script sin marcar algun error

Publicado por rodrigo (3 intervenciones) el 21/04/2020 16:25:20
Buen dia, antes que nada, muchas gracias por responder.

lo que puse de ejemplo en codigo era un ejemplo lineas atras se carga data_frame con un data frame valido de pandas, de echo si coloco codigo
similar en un archivo aparte funciona perfectamente, pero en este escrip solo termina ahi y no ejecuta nada mas..

ya tiene horas que descarte que el problema sea pandas, por ello el titulo del problema es: python termina script sin marcar algun error
de echo he comentado esa seccion y un par de lineas adelante vuelve a terminar sin ninguna razon

no hay ningun try, except, else, finally o algo que me indique que pasa.

Por ello les pido el apoyo, por si alguien sabe que ocurre, no pongo todo el codigo porque es mucho y en teoria no tiene nada de especial, hay un def que es llamado del modulo principal y la ejecucion termina en lo que puse de ejemplo, de echo dentro del def no parece tener nada especial, es este:

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
def get_customers_info_from_xlsx(self):
        def concat_emails(mails):
            return ', '.join([v for _, v in mails.dropna().iteritems()])
 
        emails_df = self.email_rfc_df
        cp_emails_df = emails_df.copy(deep=True)
        emails_df.replace([0, 'NA', 'N/A', ' ', np.nan], 'error', inplace=True)
        list_dfs = []
 
        for c in self.email_columns:
            temp = emails_df[['rfc', c]]
            temp[c].apply(lambda v: v.lower())
            condition = temp[c].str.match(r'(.{1,})@(.{1,}).(.{1,})')
 
            list_dfs.append(temp.loc[condition])
 
        emails_df = pd.concat(list_dfs, axis=1)
        emails_df = emails_df.loc[:,~emails_df.columns.duplicated()]
        emails_df = emails_df.assign(emails=emails_df[self.email_columns].apply(concat_emails, axis=1))
 
        invalid_emails_df = cp_emails_df[~cp_emails_df.rfc.isin(emails_df.rfc)]
        print('ejecuta hasta aqui')
        invalid_emails_df.to_excel('CorreosIncorrectos.xlsx', index=False)
        print('no ejecuta')
        rfc_emails = emails_df[['rfc', 'emails']].to_dict('split')['data']
        return {d[0]: d[1] for d in rfc_emails}, emails_df


la variable emails_df si trae el dataframe valido con informacion, la variable self.email_columns tambien trae informacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

python termina script sin marcar algun error

Publicado por Rodrigo (3 intervenciones) el 22/04/2020 16:17:34
buen dia, transcribi parte por parte el codigo, al parecer es un tema del idioma de mi maquina en conjunto con el funcionamineto de esta instruccion:

1
locale.setlocale(locale.LC_ALL, 'es_ES.utf8')

la cual al ser comentada, todo funciona correctamente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar