2015-01-06 4 views
0

У меня есть оболочка Python (для C lib), созданная Swig.PyBuilder разбит на Sweg-Python сгенерированный проект оболочки

Имейте unittest бежать счастливым в PyDev.

Структура проекта следовать PyBuilder предложил установку:

 
    |-src 
     |-main 
      |-python 
       |-A.py 
       |-_A.so 
     |-unittest 
      |-python 
       |-A_tests.py 

при попытке запустить PYB, получил следующую ошибку:

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

Примечание: Если я меняю к чистому модулю Python , все работает.

Должно быть что-то (шаг) отсутствует, связанный с загрузкой этого файла .so.

Извините за новый вопрос, как этот. Любая помощь будет оценена.

ответ

0

Возможно ли, что вы создали библиотеку .so для другой версии python? PyBuilder не делает ничего особенного об общих объектах, особенно при выполнении модульных тестов.

Итак, попробуйте запустить ldd _A.so и посмотрите, соответствует ли он интерпретатору, который вы используете, с помощью pyb?

+0

Да! Спасибо за помощь. проблема в том, что связанная lib - это python 2.7.2, в то время как мой запуск env - python 2.7.8. Это проблема. – user3629106

+0

2.7.8 установлен в virtualenv (с использованием virtualenvwrapper), имея проблемы с тем, чтобы ссылка на компилятор была правильно установлена ​​lib (используйте правильный python). Кажется, всегда возвращаются к системному python (2.7.2). Чтобы все было в порядке, я в конечном итоге устанавливаю pybuilder в python 2.7.2 (где/user/bin/python) и работает процесс сборки. – user3629106