2016-05-10 3 views
2

Я тестирую TensorBox, который основан на Tensorflow от Google для какой-либо задачи. Существует небольшой фрагмент кода, который необходимо скомпилировать, и я его скомпилирую. При запуске otool -L stitch_wrapper.so это выход:Ошибка Python: PyThreadState_Get: нет текущего потока после компиляции расширения

stitch_wrapper.so (compatibility version 0.0.0, current version 0.0.0) 
libpython2.7.dylib (compatibility version 2.7.0, current version 2.7.0) 
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1) 

Всякий раз, когда я в питоне import stitch_wrapper, я получаю ошибку:

Fatal Python error: PyThreadState_Get: no current thread 
Abort trap: 6 

я прочитал в комментариях в this other question, что это происходит всякий раз, когда модуль пытается использовать библиотека python, отличная от той, которую использует интерпретатор, т. е. при смешивании двух разных питонов. У меня есть два разных питона в машине, и тот, который я использую при запуске кода, - это питон anaconda, который я установил в моем каталоге home. Простите мой вопрос, если я запутался, но как я могу правильно скомпилировать мой питон anaconda? Я попытался импортировать в другой python, и он работает хорошо. Но мне нужно, чтобы он работал на моем anaconda python.

ответ

0

Как вы говорите, это происходит потому, что вы скомпилировали расширение для другой версии Python.

Чтобы заставить его работать в Anaconda, вы должны убедиться, что они предоставляют библиотеки Python, файлы заголовков и так далее. Затем вы должны перекомпилировать все, используя правильные флаги. Если Anaconda предоставляет , вы можете получить флаги оттуда.

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