Сбой Numpy с python-dbg (неопределенный символ: Py_InitModule4_64)

Использование Python 2.7.3 с Numpy 1.6.2 на 64-битной Ubuntu 12.04. В системе присутствуют дополнительные версии (Python 2.6.4 и Numpy 1.6.1), но, насколько мне известно, они не влияют на события, описанные ниже.

Я работаю над программой на Python, которая использует Numpy, и получаю сообщение об ошибке при попытке запустить определенную команду из программы. Итак, я решил установить python2.7-dbg, чтобы запустить программу с ним и посмотреть, может ли это помочь с отладкой. Итак, я бегу

$ python-dbg <command>

вместо

$ python <command>

Однако это приводит к ошибке "неопределенный символ: Py_InitModule4_64", связанной с numpy. Неважно, что именно я пытаюсь запустить; ошибка также возникает для команд, которые успешно выполняются с "обычным" питоном. Это происходит, даже если я пытаюсь импортировать numpy в пустое приглашение python-dbg:

$ python-dbg
Python 2.7.3 (default, Aug  1 2012, 04:55:00)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
    import multiarray
ImportError: /usr/local/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: Py_InitModule4_64
[134187 refs]
>>>

Импортировать Numpy успешно, когда в чистом Python приглашение.

Мне не повезло найти информацию в интернете. Самое близкое совпадение с моей ошибкой - это ошибка в Debian, которая точно такая же, но была закрыта до того, как была предоставлена ​​какая-либо дополнительная информация. Я установил как пакеты python-numpy-dbg, так и пакеты python-apt-dbg из APT; У меня есть доступ sudo к машине, поэтому сделанные мной изменения действительны для всей системы. Насколько я знаю, параметры chroot не были установлены ни для одного из процессов, которые я пытаюсь запустить, поэтому страница с ошибкой Debian мне не поможет.

Любая помощь будет принята с благодарностью.

1 ответ

Решение

Как подтверждается ФП, ключ к разгадке находится в следе, который показывает, что numpy вы импортируете в /usr/local/lib/, Однако пакеты, установленные apt, попадают в /usr/lib/pythonX.Yгде в качестве пакетов не-Ubuntu Python, установленных с pip, easy_installи т. д. установлены под /usr/local/lib/pythonX.Y и заменяет системные пакеты.

На данный момент вы должны удалить Numpy, под которым вы установили /usr/local/lib/python2.7/dist-packages для того, чтобы установленный python-numpy работал. В будущем вы можете установить и сделать что-то с usercustomize.py переключаться между ними, но я сейчас не на машине с Ubuntu, поэтому у меня нет возможности это проверить.

Другие вопросы по тегам