2010-06-02 5 views
0

Où je travaille, nous utilisons des pylônes pour notre cadre de développement web. De temps à autre, lors du débogage d'une erreur à l'aide du débogueur interactif de Pylons, je trouve une traceback qui inclut le type d'erreur suivant concernant une variable, etc. n'étant pas liée à une session:Débogueur interactif Pylons UnboundExecutionError

UnboundExecutionError: l'instance n'est pas liée à une session ; l'opération d'actualisation d'attributs ne peut pas continuer

Lorsque cette erreur est présente, je ne peux jamais afficher ce qu'une variable affectée par ce type d'erreur est égale à l'invite du débogueur interactif. Cependant, je suis capable de consigner cette information dans le shell de paster que j'ai dans mon terminal. Quelqu'un at-il déjà rencontré quelque chose de similaire, ou peut-il dire pourquoi cette erreur se produit?

Répondre

0

C'est une erreur SQLAlchemy. Pour l'éviter, chargez tous les attributs de l'objet avant qu'une exception se produise, et vous devriez pouvoir inspecter cet objet. AFAIU cette erreur se produit parce que BaseController détruit la session lorsqu'une exception se produit (il y a une try:/finally: instruction qui appelle meta.Session.remove()), donc quand vous arrivez à un débogueur, la session est déjà partie et les objets associés à cette session ne peuvent plus y accéder.