为什么会出现段错误!当我尝试运行/使用Python包gensim时?

2 投票
1 回答
4164 浏览
提问于 2025-04-16 20:31

我正在尝试使用 [gensim][1],这是一个用于Python的向量空间建模工具包,来进行我的一些机器学习实验。我按照他们的安装说明进行了操作,具体可以在这里找到。不过在我的OpenSuse 11.3上,使用easy_install安装scipy时失败了,所以我选择从官方软件包搜索门户网站上安装可用的包,链接在这里

安装scipy还算顺利,然后我又用easy_install安装了gensim,这也没问题。

现在,安装完成后,我尝试运行他们提供的第一个示例,开始时只需要一个简单的导入语句,如下所示:

from gensim import corpora, models, similarities

结果,当我在Python解释器中运行这个时,居然崩溃了,出现了Segmentation Fault!事情是这样的:

>>> from gensim import corpora, models, similarities
Segmentation fault

求助啊,我不知道错误可能出在哪里。

我知道,段错误通常是因为程序非法访问内存引起的,那这可能是因为导入时出错?还是gensim内部出了问题?

为了获取更多信息,安装包后可以进行测试,所以我也这样做了,结果还是出现了同样的Segmentation Fault!这是输出:

python setup.py test
running test
running egg_info
writing requirements to gensim.egg-info/requires.txt
writing gensim.egg-info/PKG-INFO
writing top-level names to gensim.egg-info/top_level.txt
writing dependency_links to gensim.egg-info/dependency_links.txt
reading manifest file 'gensim.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.sh' under directory '.'
writing manifest file 'gensim.egg-info/SOURCES.txt'
running build_ext
Segmentation fault

关于依赖包,我有:

>>> numpy.version.version
'1.3.0'

>>> scipy.version.version
'0.8.0'

好的,按照评论中的要求,我把gdb连接到了解释器,然后再次尝试了导入语句,结果在再次出现段错误时,gdb给了我这样的信息:

(gdb) continue
Continuing.
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/time.so
Try: zypper install -C "debuginfo(build-id)=da29868e88d517efc61eed319c4a87b41404f932"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/strop.so
Try: zypper install -C "debuginfo(build-id)=1a5723f070198420ae565b728f267f00ae7e9885"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/cStringIO.so
Try: zypper install -C "debuginfo(build-id)=d02dafc8dd403786b35ee44d946fc67461c7af34"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_functools.so
Try: zypper install -C "debuginfo(build-id)=4d3d7d73a2d7abe3d4ac45bdc07a070abde67a3b"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_collections.so
Try: zypper install -C "debuginfo(build-id)=86c7e2481ef3930f858927648d270a96ef65e0d9"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/operator.so
Try: zypper install -C "debuginfo(build-id)=ecdf6c9dfbb007d3698e4108e2412b575b14c3f0"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/unicodedata.so
Try: zypper install -C "debuginfo(build-id)=b84b2bd4061ce43b8fe6e7319d0e3fe90431f3f9"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/cPickle.so
Try: zypper install -C "debuginfo(build-id)=0cb3d3c8e51cd264b7fc0cfd6ad6cea7da6173f1"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/itertools.so
Try: zypper install -C "debuginfo(build-id)=88125d7ede2ef83a18e46901c9b7bd938d7554b9"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_bisect.so
Try: zypper install -C "debuginfo(build-id)=e872da9d2f7456947a21d6cf8ac05115da084ee0"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_heapq.so
Try: zypper install -C "debuginfo(build-id)=0c250b23be656b9984a8fbf67c232930141c6a79"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/math.so
Try: zypper install -C "debuginfo(build-id)=48f975758f43cffc37703cda98615cb2daaf8a08"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/core/multiarray.so
Try: zypper install -C "debuginfo(build-id)=adcbae28e6012eecb870c60af4805f25554c9148"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/core/umath.so
Try: zypper install -C "debuginfo(build-id)=1087f0837567a96e6db9fadb8258f21113173f01"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/core/_sort.so
Try: zypper install -C "debuginfo(build-id)=c70e9c08253546b727376f7643cc9b6cc796465e"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/core/scalarmath.so
Try: zypper install -C "debuginfo(build-id)=cbc4ec89676c6072f64ae92a2917548479141eee"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/lib/_compiled_base.so
Try: zypper install -C "debuginfo(build-id)=6f71bf761290527c07afe78736211d2393caa95e"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/linalg/lapack_lite.so
Try: zypper install -C "debuginfo(build-id)=ac2cb74a8a055e3d58e15f4ac0012159abbf7d1a"
Missing separate debuginfo for /usr/lib/liblapack.so.3
Try: zypper install -C "debuginfo(build-id)=5c9cf054c3e366ea04681d3c3b1e4d1fa8b46da5"
Missing separate debuginfo for /usr/lib/libblas.so.3
Try: zypper install -C "debuginfo(build-id)=c7ea0a3cdf0da62f1f07f81838207e6070e86449"
Missing separate debuginfo for /usr/lib/libgfortran.so.3
Try: zypper install -C "debuginfo(build-id)=6889f5fdc16cb8d7cb4d5e97c59080336c2e6e01"
Missing separate debuginfo for /lib/libgcc_s.so.1
Try: zypper install -C "debuginfo(build-id)=ea12a9f70518dd6b807755150f1d2c6ba8550fe1"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/fft/fftpack_lite.so
Try: zypper install -C "debuginfo(build-id)=32599ba87256834ebc65a962e4718aa1f9134b0e"
Missing separate debuginfo for /usr/lib/python2.6/site-packages/numpy/random/mtrand.so
Try: zypper install -C "debuginfo(build-id)=e43ddcab2e8e2961f3ab58087ac55dffa4094993"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_ctypes.so
Try: zypper install -C "debuginfo(build-id)=40cde5dd7ee47a3caac1ce1f94b6ef7fa28792ff"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_struct.so
Try: zypper install -C "debuginfo(build-id)=a5c456fe75e29e3424d7881fc05be8321fa65707"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/binascii.so
Try: zypper install -C "debuginfo(build-id)=d3a2d6b38432a2b5076e238aef398cd3776bed20"
Missing separate debuginfo for /lib/libz.so.1
Try: zypper install -C "debuginfo(build-id)=afddd839a6c18dd308b04b5289c56cc3abd1384f"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/_random.so
Try: zypper install -C "debuginfo(build-id)=683d2819c1613d54dcd68c9169fc043ecb1b5444"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/fcntl.so
Try: zypper install -C "debuginfo(build-id)=aaabeb0dbb01b7a14698fd221d09fedc6de19521"
Missing separate debuginfo for /usr/lib/libjpeg.so.8
Try: zypper install -C "debuginfo(build-id)=5656b9563c388beee6e716dbe832ecb4480895ba"
Missing separate debuginfo for /usr/lib/python2.6/lib-dynload/array.so
Try: zypper install -C "debuginfo(build-id)=4e4aea1f2106d4a7a7b4dbd51199e337549b83e2"
Missing separate debuginfo for /usr/lib/libstdc++.so.6
Try: zypper install -C "debuginfo(build-id)=181385b3f6f58b2e13543468f07e08c5edd2cd86"

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()

1 个回答

1

你可能是在32位的系统上尝试运行一个64位的程序(或者使用64位的库)。

在运行导致程序崩溃的任务时,可以使用 python -v 来查看问题出在哪里。如果这样还不够清楚,可以试试用 strace python,而不是直接用 python。如果崩溃发生在尝试“打开”一个 .so 文件之后,那么可以使用像 filereadelf 这样的工具来查一下这个程序或 .so 库需要多少位。

如果你使用的是686版本的Linux,那么所有东西都必须是32位的。如果你使用的是x86_64版本的Linux,那么所有东西应该都是64位的。

撰写回答