安装包时出现 Python pip 段错误

新手上路,请多包涵
Python 2.7.6 (default, Oct 21 2014, 13:39:51)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-55)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

在我们运行 Centos 5.4 的遗留旧服务器上一直遇到这个问题。

异常信息:

 Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 1229, in prepare_files
    req_to_install.run_egg_info()
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 325, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/util.py", line 697, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command python setup.py egg_info failed with error code -11 in /tmp/pip_build_root/macs2

有任何想法吗?最初我以为是python版本问题,但我从2.7.1升级到2.7.6,仍然得到同样的错误。

点列表:

 numpy (1.9.0)
pip (1.5.6)
setuptools (7.0)
wsgiref (0.1.2)

-Edit 当我卸载并使用 numpy ver 1.4.0 时返回相同的错误但代码为 1。

(gdb) 运行 setup.py install –user 启动程序:/usr/local/bin/python2.7 setup.py install –user 警告:在 0x2aaaaaaab000 处添加的符号文件系统提供的 DSO 中找不到可加载的部分 >> >[启用使用 libthread_db 进行线程调试]

程序收到信号 SIGSEGV,分段错误。 append_metastr_to_string (meta=0x20, skip_brackets=0, ret=0x2aaaaf29e1e8) at >numpy/core/src/multiarray/datetime.c:1965 1965 if (meta->base == NPY_FR_GENERIC) {

这是由 wget 完成的,然后解开球

原文由 Rudy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
1 个回答

我在阅读帖子标题后遇到了这个问题,因为我自己也遇到过这个问题。在这里为任何未来的读者展示我的案例和解决方案。

问题

我的工作流程如下所示:

 $ pip install simplejson
Collecting simplejson
Installing collected packages: simplejson
Successfully installed simplejson
Segmentation fault (core dumped)

解决方案

因为我在这个系统上有 root 权限,所以我尝试做一个类似的流程,但作为另一个用户,它成功地通过了,没有任何问题。我认为它与我的用户目录有关,因此我擦除了我的 .local 文件夹

$ rm -rf ~/.local/lib/python*

上面的相同工作流程现在成功通过了,尽管有 pip 警告,正如大多数人所知,这并不重要。

 $ pip install simplejson
Collecting simplejson
Installing collected packages: simplejson
Successfully installed simplejson
You are using pip version 8.1.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

可能的原因

当我尝试倒回我对用户帐户所做的操作时,使用简单的用户权限,我强制安装了 pip 这将覆盖系统的 pip /usr/bin/pip 中的一个 .local 文件夹。然后我从我的 .local 文件夹中手动删除了 pip 的二进制文件,这个问题开始出现。在我看来,我的用户帐户中仍有一些对 pip 包的引用。当您处理多个 python 版本并像我一样手动删除任何二进制文件时,也可能会发生这种情况。

原文由 arbazkhan002 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题