Выяснение того, что находится внутри файла библиотеки Python - PullRequest
0 голосов
/ 07 августа 2011

У меня есть файл python .so, который отлично работает с python v2.4.3, но у меня нет исходного кода этого библиотечного файла.Теперь он не работает в Python 2.6.5.Можно ли открыть файл .so и перекомпилировать его в Python 2.6.5 ??Я не знаю, возможно ли это, мне просто любопытно.Спасибо !

Ошибка, которую я получаю

Трассировка (последний последний вызов):

Файл "run.py", строка 1, в

import MarkovPrediction

Файл "/home/ssubbiah/markov_prediction/vmresource/MarkovPrediction.py", строка 7, в

import libmarkov

Ошибка импорта: / home / ssubbiah / markov_prediction/vmresource/libmarkov.so: неопределенный символ: _ZN5boost6python9converter8registry6insertEPFPvP7_objectEPFvS5_PNS1_30rvalue_from_python_stage1_dataEENS0_9type_infoE

  • 10209

Ответы [ 2 ]

0 голосов
/ 07 августа 2011

Модули расширения должны быть скомпилированы для конкретной версии Python. Без исходного кода вы не сможете использовать его для другой версии.

0 голосов
/ 07 августа 2011

Файл .so (.pyd в Windows) - это модуль, написанный на языке C. Он скомпилирован и привязан к конкретной версии Python, в данном случае Python 2.4.x.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...