Construindo Python 2.7.1 no Mac OS X, importando threading e uma exceção KeyError

1

Problema original:

Estou construindo o Python 2.7.1 no Mac OS X 10.6.7 e estou tendo problemas com uma exceção KeyError sendo lançada do módulo threading quando o Python é encerrado (provavelmente na chamada atexit ).

Eu não consegui encontrar uma resposta adequada em nenhum lugar, e estou me perguntando se alguém aqui sabe qual é o problema e como talvez compilar / configurar o Python corretamente para evitar isso.

Os passos para produzir o erro são relativamente curtos:

echo "import threading" | ./python

Isso produz a seguinte saída:

Exception KeyError: KeyError(140735086161056,) in <module 'threading' from '/Users/danerik/quantumnotes/qw-control/quantumsource/external-libs/build/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored

O erro é muito provavelmente inofensivo (não tive efeitos negativos), mas a mensagem é indesejável e eu preferiria que não estivesse presente.

    
por Dan 10.06.2011 / 22:48

2 respostas

0

O problema que eu tive foi que eu tinha um arquivo Modules / main.c customizado de uma versão antiga do Python (2.6.1) poluindo minha versão 2.7.1. Embora quase idêntica, a principal diferença é que no arquivo 2.6.1 main.c havia uma rotina WaitForThreadShutdown(void) que executaria as operações se o módulo de threading tivesse sido importado. Um novo arquivo Modules/main.c personalizado foi feito com base na nova versão 2.7.1, e isso resolveu meu problema.

Meu mal.

    
por 13.06.2011 / 15:31
0

A compilação do python2.7 do MacPorts não tem esse problema. Você pode simplesmente obter deles, ou tentar comparar seus flags de configuração para deles e ver o que difere.

    
por 10.06.2011 / 23:08