在 64 位 Ubuntu 12.04 上使用 Python 2.7.3 和 Numpy 1.6.2。系统上存在其他版本(Python 2.6.4 和 Numpy 1.6.1),但据我所知,这些版本对下面描述的事件没有影响。
我正在开发一个使用 Numpy 的 Python 程序,当我尝试从该程序运行某个命令时出现错误。所以,我决定安装 python2.7-dbg 来运行程序,看看它是否有助于调试。所以我跑
$ python-dbg <command>
代替
$ python <command>
但是,这会给出与 numpy.xml 相关的“未定义符号:Py_InitModule4_64”错误。我到底想跑什么并不重要。如果使用“常规”python 运行成功的命令也会发生错误。即使我尝试将 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]
>>>
在纯 python 提示符下导入 numpy 成功。
我没有运气在互联网上找到信息。与我的错误最接近的是debian 上的这个错误,它是完全相同的情况,但在提供任何进一步信息之前已关闭。我已经从 APT 安装了 python-numpy-dbg 和 python-apt-dbg 软件包;我对机器有 sudo 访问权限,因此我所做的更改在系统范围内有效。据我所知,没有为我尝试运行的任何进程设置 chroot 选项,因此 Debian 错误页面对我没有帮助。
任何帮助将不胜感激。