安装包时Python pip segfault

时间:2014-10-21 19:03:51

标签: python python-2.7 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)

- 编辑 当我卸载并使用numpy ver 1.4.0时,返回相同的错误,但代码为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)at> numpy / core / src / multiarray / datetime.c:1965 1965 if(meta-> base == NPY_FR_GENERIC){

这是通过wget跟随解开球来完成的

2 个答案:

答案 0 :(得分:2)

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

问题

我的工作流程如下:

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

解决方案

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

$ rm -rf ~/.local

上面的相同工作流程现在成功通过,但带有一点警告,这是众所周知的,

$ 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,它将用/usr/bin/pip文件夹中的那个替换在.local上的系统点。然后,我从.local文件夹中手动删除了pip的二进制文件,此问题开始出现。在我看来,我的用户帐户中仍在参考pip软件包。当您使用多个python版本并像我一样手动删除任何二进制文件时,也会发生这种情况。

答案 1 :(得分:1)

添加INTERFACE_INCLUDE_DIRECTORIES似乎对我有用。

因此您的新命令应类似于:

file(MAKE_DIRECTORY ${MODBUS_INCLUDES})

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