Что означает `Фатальная ошибка Python: PyThreadState_Get: нет текущего потока`?

Я передаю mpi-коммуникатор из python в C. Я решил использовать mpi-коммуникатор boost, так как mpi4py, похоже, не имеет хорошей поддержки C. Проверьте это:

        try: from boost.mpi import world
except ImportError: from mpi import world
err = run_with_mpi(infile, world, stdout, stderr, exc)

В системах, где установлен boost.mpi, это не вызывает ошибок. Однако boost.mpi не может быть установлен на Mac. Я установил модуль mpi.so boost, используя формулу boost155 для homebrew, затем добавил .so файл в pythonpath.

Вообще, что делает Fatal Python error: PyThreadState_Get: no current thread имею в виду? Какие подсказки дает это сообщение таким разработчикам, как я?

Полное сообщение об ошибке:

Fatal Python error: PyThreadState_Get: no current thread
[kilojoules-20160s:64471] *** Process received signal ***
[kilojoules-20160s:64471] Signal: Abort trap: 6 (6)
[kilojoules-20160s:64471] Signal code:  (0)
[kilojoules-20160s:64471] *** End of error message ***

4

Решение

Эта проблема может возникнуть, если .so файл из формулы доморощенного ссылки на другой python библиотека, чем переводчик вы работаете, см. также эта тема а также этот ответ.

Если у вас нет других зависимостей, запустите вашу программу с помощью интерпретатора python из homebrew (который должен находиться в /usr/local/bin/) может решить вопрос.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]