Я пытаюсь запустить мой проект, но у меня проблемы. После большой отладки я сузил проблему, но понятия не имею, как действовать.
В некоторых случаях я использую python script внутри кода С++. Это несколько документировано на Python, и мне удалось запустить его очень хорошо в моем основном исполняемом файле. #include и -lpython2.6, и все было грандиозным.
Однако возникла трудность при запуске этого python script из общей библиотеки (.so). Эта разделенная библиотека "загружается" как "модуль" с помощью системы моделирования (OpenRAVE). Система взаимодействует с этим модулем, используя виртуальный метод для "модулей", называемых SendCommand. Затем модуль запускает boost:: thread, давая python собственный поток и возвращается в систему моделирования. Однако, когда python начинает импортировать свои модули и, таким образом, загружая свои динамические библиотеки, он терпит неудачу, я предполагаю из-за следующей ошибки:
ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct
Я запустил ldd в своем исполняемом файле и в разделяемой библиотеке, там нет какой-то разницы. Я также запускал nm -D в файле выше, _Py_ZeroStruct действительно undefined. Если вы, ребята, хотели бы распечатать команды, я был бы рад предоставить их. Любые советы будут очень признательны, спасибо.
Вот полная ошибка python:
Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/numpy/__init__.py", line 130, in import add_newdocs File "/usr/lib/python2.6/dist-packages/numpy/add_newdocs.py", line 9, in from lib import add_newdoc File "/usr/lib/python2.6/dist-packages/numpy/lib/__init__.py", line 4, in from type_check import * File "/usr/lib/python2.6/dist-packages/numpy/lib/type_check.py", line 8, in import numpy.core.numeric as _nx File "/usr/lib/python2.6/dist-packages/numpy/core/__init__.py", line 5, in import multiarray ImportError: /usr/lib/python2.6/dist-packages/numpy/core/multiarray.so: undefined symbol: _Py_ZeroStruct Traceback (most recent call last): File "/home/constantin/workspace/OpenRAVE/src/grasp_behavior_2.py", line 3, in from openravepy import * File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", line 35, in openravepy_currentversion = loadlatest() File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", line 16, in loadlatest return _loadversion('_openravepy_') File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/__init__.py", line 19, in _loadversion mainpackage = __import__("openravepy", globals(), locals(), [targetname]) File "/home/constantin/workspace/rospackages/openrave/lib/python2.6/site-packages/openravepy/_openravepy_/__init__.py", line 29, in from openravepy_int import * ImportError: numpy.core.multiarray failed to import