1

Оригинальная проблема:

Я собираю Python 2.7.1 на Mac OS X 10.6.7 и у меня возникают проблемы с исключением исключения KeyError из модуля threading при выходе из Python (вероятно, при вызове atexit ).

Я нигде не смог найти правильного ответа, и мне интересно, знает ли кто-то здесь, в чем может быть проблема и как, возможно, правильно скомпилировать / настроить Python, чтобы избежать этого.

Шаги для получения ошибки относительно короткие:

echo "import threading" | ./python

Это дает следующий вывод:

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

Ошибка, по всей вероятности, безвредна (я не испытал никаких побочных эффектов), но сообщение нежелательно, и я бы предпочел, чтобы его не было.

2 ответа2

0

Проблема, с которой я столкнулся, заключалась в том, что у меня был собственный файл Modules/main.c из более старой версии Python (2.6.1), загрязняющий мою версию 2.7.1. Хотя оно почти идентично, основное отличие состоит в том, что в файле 2.6.1 main.c была WaitForThreadShutdown(void) , которая выполняла бы операции, если бы был импортирован модуль потоков. Затем был создан новый пользовательский файл Modules/main.c основанный на новом выпуске 2.7.1, и это решило мою проблему.

Виноват.

0

В сборке python2.7 из MacPorts такой проблемы нет. Вы можете просто получить их от них или попробовать сравнить ваши флаги конфигурации с их флагами и посмотреть, что отличается.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .