Skip to main content
 首页 » 编程设计

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

2025年05月04日8oomusou

我正在尝试使用 [gensim][1],它是我的一些机器学习实验中用于 python 的向量空间建模包。我按照 here 所说的安装说明进行操作,尽管在我的 OpenSuse 11.3 上安装 scipy 按照他们的建议使用 easy_install 时失败了,所以我求助于从可用的软件包中安装它官方包搜索门户 here 。

scipy 安装正常,然后我使用 easy_install 按照他们的建议安装 gensim。这也很顺利。

现在,在安装之后,我尝试运行他们给出的使用该包的第一个示例,该示例以一个不起眼的 import 语句开始,如下所示:

from gensim import corpora, models, similarities 

喂!当我试图在我的 python 解释器中运行它时,亲爱的东西因 Segmentation Fault 而崩溃!事情是这样的:

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

有人救我,因为我不知道错误可能来自哪里。

我知道段错误通常是由于进程非法访问内存造成的,那么这可能是由于导入导致的吗?还是 gensim 中的一些错误?

更多信息,据说安装包后可以测试,所以我就这样做来测试我的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挂接到解释器上,然后再次尝试import语句,这就是再次发生段错误时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 ?? () 

请您参考如下方法:

您可能正在尝试在 32 位系统上运行 64 位二进制文​​件(或使用 64 位库)。

在运行产生段错误的任务时使用 python -v 以查看是否可以查明它的位置。如果这还不够清楚,请尝试使用 strace python 而不仅仅是 python。如果在尝试“打开”.so 文件后立即出现段错误,则使用 file 或 readelf 之类的工具来找出二进制文件或 .so 文件有多少位。所以图书馆需要。

如果您有 686 Linux,那么一切都必须是 32 位的。如果您有 x86_64 Linux,那么它应该都是 64 位的。