setuptools使用以下方式升级pip

setuptools使用以下方式升级pip

我正在尝试rpy2在 Ubuntu 16.04 上使用 pip install 安装 python 包:

pip install rpy2==2.2.7

但收到错误消息(请参阅下面的完整输出):

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

同样的事情也发生在其他软件包中,比如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 安装 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 行,位于
      文件“/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()
      文件“/usr/lib/python2.7/distutils/dist.py”,第 953 行,在 run_commands 中
        自我运行命令(cmd)
      文件“/usr/lib/python2.7/distutils/dist.py”,第 972 行,在 run_command 中
        cmd_obj.运行()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第 280 行,运行中
        自我寻找资源()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第 295 行,在 find_sources 中
        毫米.运行()
      文件“/usr/local/lib/python2.7/dist-packages/setuptools/command/egg_info.py”,
第 526 行,运行中
        自我添加默认值()
      文件“/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”,
_add_defaults_ext 中的第 119 行
        build_ext = self.get_finalized_command('build_ext')
      文件“/usr/lib/python2.7/distutils/cmd.py”,第 312 行,位于 get_finalized_command 中
        cmd_obj.ensure_finalized()
      文件“/usr/lib/python2.7/distutils/cmd.py”,第 109 行,位于 Ensure_finalized
        自我.finalize_options()
      文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第 155 行,在 finalize_options 中
        配置+ = get_rconfig(r_home,关于)
      文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第 319 行,在 get_rconfig 中
        rc = RConfig.from_string(rconfig,allow_empty = allow_empty)
      文件“/tmp/pip-build-EkrbmM/rpy2/setup.py”,第 279 行,在 from_string 中
        +'\nin字符串\n'+字符串)
    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”在 /tmp/pip-build-EkrbmM/rpy2/ 中失败,错误代码为 1

pip 安装展开
使用缓存的 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 行,位于
      文件“/tmp/pip-build-QimGjp/unroll/setup.py”,第 2 行,位于
        ez_setup.使用_setuptools()
      文件“/usr/local/lib/python2.7/dist-packages/ez_setup.py”,第 145 行,在 use_setuptools 中
        返回 _do_download(version,download_base,to_dir,download_delay)
      文件“/usr/local/lib/python2.7/dist-packages/ez_setup.py”,第 124 行,位于 _do_download 中
        到目录,下载延迟)
      文件“/usr/local/lib/python2.7/dist-packages/ez_setup.py”,第 193 行,位于 download_setuptools 中
        src = urlopen(url)
      urlopen 中的文件“/usr/lib/python2.7/urllib2.py”,第 154 行
        返回 opener.open(url, data, timeout)
      文件“/usr/lib/python2.7/urllib2.py”,第 435 行,打开
        响应 = 方法 (请求,响应)
      文件“/usr/lib/python2.7/urllib2.py”,第 548 行,位于 http_response 中
        ‘http’,请求,响应,代码,msg,hdrs)
      文件“/usr/lib/python2.7/urllib2.py”,第 473 行,错误
        返回 self._call_chain(*args)
      文件“/usr/lib/python2.7/urllib2.py”,第 407 行,位于 _call_chain 中
        结果 = 函数(*args)
      文件“/usr/lib/python2.7/urllib2.py”,第 556 行,位于 http_error_default
        引发 HTTPError(req.get_full_url(),代码,msg,hdrs,fp)
    urllib2.HTTPError:HTTP 错误 403:需要 SSL

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

答案1

setuptools使用以下方式升级pip

python-setuptoolsUbuntu 16.04 LTS 软件包存储库中的版本是过时/无人维护。 使用以下命令进行升级,pip而不是依赖包管理器:

$ sudo pip install --upgrade setuptools

答案2

更新setuptools没有解决我的问题。但是,告诉 pip 自己升级可以解决。

以下命令解决了我的问题(来自这个答案

pip install --upgrade pip

答案3

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

答案4

您需要获取安装工具和可能的开发模块,请输入以下内容

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

为了确保一切顺利运行,最好先升级 pip,方法是输入

sudo apt install python-pip

祝你好运

相关内容