我正在尝试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.tar.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-setuptools
Ubuntu 16.04 LTS 软件包存储库中的版本是过时/无人维护。
使用以下命令进行升级,pip
而不是依赖包管理器:
$ sudo pip install --upgrade setuptools
答案2
答案3
我自己的问题的解决方案:提出的答案没有解决问题,所以我最终使用了conda
,为所需的包创建了一个特定的环境,这有效!这不是最好的解决方案,特别是因为它需要安装并行版本(虽然可以使用 miniconda 来节省空间),但它是一个实用的解决方案!
答案4
您需要获取安装工具和可能的开发模块,请输入以下内容
sudo apt-get install python-setuptools
sudo apt-get install python-dev
为了确保一切顺利运行,最好先升级 pip,方法是输入
sudo apt install python-pip
祝你好运