安装软件包时出现Python pip segfault

Rud*_*udy 6 python pip python-2.7

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.
Run Code Online (Sandbox Code Playgroud)

在运行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
Run Code Online (Sandbox Code Playgroud)

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

点列表:

numpy (1.9.0)
pip (1.5.6)
setuptools (7.0)
wsgiref (0.1.2)
Run Code Online (Sandbox Code Playgroud)

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

(gdb)运行setup.py install --user启动程序:/usr/local/bin/python2.7 setup.py install --user警告:在添加的符号文件系统提供的DSO的0x2aaaaaaab000中找不到可装入的部分>> > [已启用使用libthread_db进行线程调试]
程序收到信号SIGSEGV,分段错误。append_metastr_to_string(meta = 0x20,skip_brackets = 0,ret = 0x2aaaaf29e1e8)位于> numpy / core / src / multiarray / datetime.c:1965 1965 if(meta-> base == NPY_FR_GENERIC){

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

arb*_*002 10

阅读帖子标题后,我碰到了这个问题,因为我自己遇到了这个问题。在这里为以后的读者介绍我的案例和解决方案。

问题

我的工作流程如下所示:

$ pip install simplejson
Collecting simplejson
Installing collected packages: simplejson
Successfully installed simplejson
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)

因为我在该系统上具有root特权,所以我尝试执行类似的流程,但是作为另一个用户,它成功通过并且没有任何问题。我认为这与我的用户主管有关,因此我擦除了.local文件夹

$ rm -rf ~/.local
Run Code Online (Sandbox Code Playgroud)

上面的相同工作流程现在成功通过,但带有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.
Run Code Online (Sandbox Code Playgroud)

可能的原因

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

  • 虽然这确实可以解决分段错误,但是删除`.local'可能会带来负面影响,因为此目录可以包含用户安装的程序和设置。就我而言,这不是问题,但您可能需要确保删除之前没有任何需要的东西。删除`.local`中的Python目录可能是一个更好的主意。在我的机器上,我有一个名为`.local \ lib \ python3.5`的目录,该目录又包含一个`site-packages`目录。之后,您可能需要重新安装所有模块。 (4认同)
  • 抱歉,它对我不起作用,在我安装 winrm 时遇到了同样的问题:( 我做了一个正确的部署,一个测试虚拟机,以及第二个用于产品的部署,失败了。我在错误的部署中所做的唯一不同的事情是明确的安装“python3-pip”、“python3”,然后“pip install --upgrade pip”...但失败了。因此,由于我尚未在失败的虚拟机中进行任何其他更新,因此我重新部署了这些虚拟机,并正确安装,只需使用 `sudo apt update; sudo apt update -y; sudo apt install -y software-properties-common python-pip; pip install pywinrm` ...一切都按预期工作。 (2认同)
  • 仅删除 **site-packages** 文件夹(~/.local/lib/python3.6/site-packages)也可以。无需删除整个 .local 文件夹。 (2认同)

saz*_*y4o 10

添加--no-binary :all:似乎对我有用。

所以你的新命令应该是这样的:

pip install <module> --no-binary :all:
Run Code Online (Sandbox Code Playgroud)

我知道这有点晚了,但我希望这会有所帮助

  • 我认为这是一个非常有帮助的答案。通过将 `--no-binary :all:` 添加到我的 `pip install &lt;module&gt;` 中,首先我得到了 `致命错误:ffi.h:没有这样的文件或目录`。运行“sudo apt install libffi-dev”然后重新尝试安装后,我收到“致命错误:openssl/opensslv.h:没有这样的文件或目录”。所以我运行了`sudo apt install libssl-dev`,然后再次尝试安装:`pip3 install python-openstackclient --no-binary :all:`。这次安装没有错误。出色的!:-) (2认同)
  • 为了澄清我之前的评论,“--no-binary :all:”后缀帮助我找到了 python 包所依赖的**两个** apt 包。确实非常有帮助。 (2认同)