簡體   English   中英

嘗試在 psycopg2 上捕獲異常時出錯(僅使用 py2exe)

[英]Error when trying to catch exception on psycopg2 (only with py2exe)

我對這段代碼有一些問題:

...
query = f"INSERT INTO nichos VALUES {parameters}"
try:
    run_query(query)
    print()
    print("Nicho agregado exitosamente.")
    print()
    if ret == 1:
        return cod_nicho
except sql.errors.UniqueViolation:
    print()
    print("         ERROR. El nicho ya se encuentra cargado en el sistema. No se realizaron cambios en el registro.")
    if ret == 0:
        return
    elif ret == 1:
        return cod_nicho
except:
    log_error()
    print("")
    input("         ERROR. Comuníquese con el administrador...  Presione enter para continuar...")
    if ret == 0:
        return
    elif ret == 1:
        return cod_nicho
...

問題是,當我從 Windows 控制台($ py script.py)執行它時,它運行良好,如果您嘗試在數據庫中插入現有值,它會執行except塊。

但是,如果我對使用py2exe創建的 .exe 執行相同操作,則會出現以下錯誤:

Traceback (most recent call last):
  File "funciones_mantenimiento.pyc", line 1459, in alta_nicho
  File "funciones_mantenimiento.pyc", line 160, in run_query
psycopg2.errors.UniqueViolation: llave duplicada viola restricción de unicidad «sqlite_autoindex_nichos_1»
DETAIL:  Ya existe la llave (codigo)=(0202010036).


During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "ventas.py", line 42, in <module>
  File "funciones_ventas.pyc", line 383, in menu
  File "funciones_ventas.pyc", line 1628, in menu_editar_op
  File "funciones_ventas.pyc", line 1823, in cambiar_nicho
  File "funciones_mantenimiento.pyc", line 1465, in alta_nicho
AttributeError: module 'psycopg2' has no attribute 'errors'

有人知道我該如何解決這個問題?

謝謝!

這意味着 py2exe 沒有正確檢測到psycopg2.errors是您程序的依賴項。

為了使它更容易確定,請添加以下行:

import psycopg2.errors

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM