2016-06-13 6 views
0

Я пытаюсь импортировать общий объект в мой питона код, например так:Проблема импорта разделяемого объекта в Python

import bz2 

, к которому я получаю следующее сообщение об ошибке:

ImportError: ./bz2.so: cannot open shared object file: No such file or directory

Использование имп модуль, я могу подтвердить, что Python может реально найти:

>>> import imp 
>>> imp.find_module('bz2') 
(<open file 'bz2.so', mode 'rb' at 0xb6f085f8>, 'bz2.so', ('.so', 'rb', 3)) 

общий объектный файл в моем PYTHONPATH и м y LD_LIBRARY_PATH.

Любое понимание того, почему я не могу импортировать этот общий объект? Благодаря!

ответ

0

bz2.so - общий объект, который предоставляет функциональность bzip (которая была написана на C) для модулей python. Вы не импортируете его напрямую, когда вы импортируете bz2, вы фактически импортируете модуль python, называемый bz2, который затем использует .so-файл.

Это обычно означает, что у вас не установлена ​​версия для разработки библиотеки bzip или у вас нет настройки компилятора c для установщика pip, которая будет использоваться для создания этого для вас.

Вы не скажете, какой linux вы используете, но общий шаблон выглядит в менеджере пакетов для bzip2 dev или devel пакетов и устанавливать их.

+0

Я использую пользовательскую сборку linux, и она не поставляется с предустановленной версией bz2, и для ее получения нет диспетчера пакетов. Я перекрестно скомпилировал его из источника. – RoboCop87

+0

Что касается импорта модуля python, который его использует, я пробовал написать модуль python, который импортирует модуль dl и использует dl.open ('bz2.so'), но это тоже не сработало. – RoboCop87

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

  • Нет связанных вопросов^_^