2016-02-25 2 views
3

Я передаю коммуникатор mpi от python до C. Я решил использовать коммуникатор mpi boost, поскольку mpi4py, похоже, не имеет хорошей поддержки C. Проверьте это:Что означает `Fatal Python error: PyThreadState_Get: нет текущей нити`?

 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 *** 

ответ

5

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

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

Смежные вопросы