pipinstall给出“命令”python setup.py egg_info“失败,错误代码为1”

我试图在Ubuntu 16.04上使用pip install安装python包rpy2

 pip install rpy2==2.2.7 

但得到错误信息(见下面的完整输出):

 Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-EuOI6K/unroll/ 

其他软件包pip2发生同样的事情,例如pip install unroll或使用pip2 。 我认为这篇文章是同一个问题,但它通过使用sudo解决了。

解决了尝试

我在这篇文章中尝试过解决方案,例如: pip install --upgrade setuptools(sudo) easy_install -U setuptools ,或sudo apt-get install python-setuptools ,但无济于事。

python / pip信息

有人建议我可能有一个奇怪的python / pip安装,这里有一些信息:

 sudo which python pip pip2 | xargs -rd '\n' readlink -f /usr/bin/python2.7 /usr/local/bin/pip /usr/local/bin/pip2 sudo python --version Python 2.7.12 sudo pip --version pip 9.0.1 from /home/matifou/.local/lib/python2.7/site-packages (python 2.7) /usr/bin/pip2 --version pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7) ls -l $(which pip); dpkg -S /usr/bin/pip -rwxr-xr-x 1 root root 204 Nov 8 16:24 /usr/local/bin/pip python-pip: /usr/bin/pip 

完整的错误输出

  pip install rpy2 == 2.2.7  
收集rpy2 == 2.2.7使用缓存的rpy2-2.2.7.ta​​r.gz  
    从命令python setup.py egg_info完成输出:
    运行egg_info
    创建pip-egg-info / rpy2.egg-info
    写pip-egg-info / rpy2.egg-info / PKG-INFO
    将顶级名称写入pip-egg-info / rpy2.egg-info / top_level.txt
    将dependency_links写入pip-egg-info / rpy2.egg-info / dependency_links.txt
    写清单文件'pip-egg-info / rpy2.egg-info / SOURCES.txt'
    回溯(最近的呼叫最后):
      文件“”,第1行,in 
      文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第462行, 
         [os.path.join('doc','source','rpy2_logo.png')])],
      设置中的文件“/usr/lib/python2.7/distutils/core.py”,第151行
         dist.run_commands()
      在run_commands中的文件“/usr/lib/python2.7/distutils/dist.py”,第953行
         self.run_command(CMD)
      在run_command中输入文件“/usr/lib/python2.7/distutils/dist.py”,第972行
         cmd_obj.run()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第280行,在运行中
         self.find_sources()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第295行,在find_sources中
         mm.run()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第526行,在运行中
         self.add_defaults()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第562行,在add_defaults中
         sdist.add_defaults(个体经营)
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/py36compat.py”,
第36行,在add_defaults中
         self._add_defaults_ext()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/py36compat.py”,
第119行,在_add_defaults_ext中
         build_ext = self.get_finalized_command('build_ext')
      在get_finalized_command中输入文件“/usr/lib/python2.7/distutils/cmd.py”,第312行
         cmd_obj.ensure_finalized()
      文件“/usr/lib/python2.7/distutils/cmd.py”,第109行,在ensure_finalized中
         self.finalize_options()
      在finalize_options中输入文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第155行
         config + = get_rconfig(r_home,about)
      在get_rconfig中输入文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第319行
         rc = RConfig.from_string(rconfig,allow_empty = allow_empty)
      来自from_string的文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第279行
         +'\ nin string \ n'+ string)
     ValueError:无效的子字符串
     -fopenmp
    在字符串中
     -Wl, -  export-dynamic -fopenmp -Wl,-Bsymbolic-functions -Wl,-z,relro -L / usr / lib / R / lib -lR -lpcre -llzma -lbz2 -lz -lrt -ldl -lm

命令“python setup.py egg_info”失败,错误代码1在/ tmp / pip-build-EkrbmM / rpy2 /

 pip install unroll
收集展开使用缓存unroll-0.1.0.tar.gz
    从命令python setup.py egg_info完成输出:
    正在下载http://pypi.python.org/packages/source/d/distribute/distribute-0.6.14.tar.gz
    回溯(最近的呼叫最后):
      文件“”,第1行,in 
      文件“/tmp/pip-build-QimGjp/unroll/setup.py”,第2行,in 
         ez_setup.use_setuptools()
      在use_setuptools中输入文件“/usr/local/lib/python2.7/dist-packages/ez_setup.py”,第145行
         return _do_download(version,download_base,to_dir,download_delay)
      文件“/usr/local/lib/python2.7/dist-packages/ez_setup.py”,第124行,在_do_download中
         to_dir,download_delay)
      在download_setuptools中输入文件“/usr/local/lib/python2.7/dist-packages/ez_setup.py”,第193行
         src = urlopen(url)
      在urlopen中输入文件“/usr/lib/python2.7/urllib2.py”,第154行
         return opener.open(url,data,timeout)
      文件“/usr/lib/python2.7/urllib2.py”,第435行,处于打开状态
         response = meth(req,response)
      在http_response中输入文件“/usr/lib/python2.7/urllib2.py”,第548行
         'http',请求,响应,代码,消息,hdrs)
      文件“/usr/lib/python2.7/urllib2.py”,第473行,出错
         return self._call_chain(* args)
       _call_chain中的文件“/usr/lib/python2.7/urllib2.py”,第407行
         result = func(* args)
      在http_error_default中输入文件“/usr/lib/python2.7/urllib2.py”,第556行
        引发HTTPError(req.get_full_url(),代码,msg,hdrs,fp)
     urllib2.HTTPError:HTTP错误403:需要SSL

命令“python setup.py egg_info”失败,错误代码1在tmp / pip-
集结QimGjp /展开/ 

你需要获得设置工具和可能的dev模块输入以下内容

 sudo apt-get install python-setuptools sudo apt-get install python-dev 

首先升级pip以确保除了平稳运行之外什么都没有意义,这可以通过输入完成

 sudo apt install python-pip 

祝好运

Ubuntu 16.04 LTS的软件包存储库中的python-setuptools版本已过时/未维护。 使用pip升级它而不是依赖于包管理器:

 $ sudo pip install --upgrade setuptools 

解决方案我提出了自己的问题:提出的答案并没有解决问题,所以我最终使用了conda ,为我需要的软件包创建了一个特定的环境,这很有效! 这是现在最好的解决方案,特别是因为它需要安装一个并行版本(你可以使用miniconda空间)但是实用的!