Python 2.7 安装NumPy+;Python2.7中的SciPy现在失败了,原因是;运行时错误:Python版本>;=3.5“必需”;
像这样从源代码安装numpy和scipy(比如,在新的Python 2.7Python 2.7 安装NumPy+;Python2.7中的SciPy现在失败了,原因是;运行时错误:Python版本>;=3.5“必需”;,python-2.7,numpy,scipy,pip,Python 2.7,Numpy,Scipy,Pip,像这样从源代码安装numpy和scipy(比如,在新的Python 2.7pyenv virtualenv): 让他们的安装程序使用指向my openblas安装的~/.numpy site.cfg文件 这曾经奏效。现在,它将生成一个以以下内容结尾的长堆栈跟踪: File "/usr/local/var/pyenv/versions/2.7.16/envs/issue/lib/python2.7/site-packages/setuptools/sandbox.py", line 4
pyenv virtualenv
):
让他们的安装程序使用指向my openblas安装的~/.numpy site.cfg
文件
这曾经奏效。现在,它将生成一个以以下内容结尾的长堆栈跟踪:
File "/usr/local/var/pyenv/versions/2.7.16/envs/issue/lib/python2.7/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/var/folders/_b/q30qg_l50b5gvqd8y4_wb9h00000gn/T/easy_install-o9MJ5E/numpy-1.17.1/setup.py", line 31, in <module>
if sys.version_info[0] < 3:
RuntimeError: Python version >= 3.5 required.
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
文件“/usr/local/var/pyenv/versions/2.7.16/envs/issue/lib/python2.7/site packages/setuptools/sandbox.py”,文件第45行
执行官(代码、全局、局部)
文件“/var/folders/_b/q30qg_l50b5gvqd8y4_wb9h00000gn/T/easy_install-o9MJ5E/numpy-1.17.1/setup.py”,第31行,在
如果系统版本信息[0]<3:
运行时错误:需要Python版本>=3.5。
----------------------------------------
错误:命令出错,退出状态为1:python setup.py egg_info检查日志以获得完整的命令输出。
什么改变了?问:为什么在Python2.7安装中会说
Python版本>=3.5是必需的。
问:如何修复它?scipy 1.0.1安装程序需要
numpy
作为先决条件,但是多个安装程序一起工作最终会得到numpy
的最新版本,除非numpy
已经存在
更改内容:最新版本的numpy
需要Python 3.5+,因此会显示错误消息
因此,即使pip
命令明确要求install numpy==1.14.6 scipy==1.0.1
,它也会触发一个更新的numpy
安装程序,在Python 2上失败。(堆栈跟踪中的最后一个条目显示需要Python 3的numpy-1.17.1
)
问题出现在pip、scipy和numpy安装程序以及easy_安装程序之间的交互中。详情请参阅
解决方法:首先安装
numpy
。然后安装scipy
。或者,如果您不需要--no binary
选项,那么一行安装也可以工作。这篇文章让我觉得更改requirements.txt中numpy和scipy的显示顺序就足够了。只有在我尝试instally numpy without requirements.txt时,我才发现scipy的真正问题,Docker安装程序中缺少BLAS dev文件。@cyrf从另一个项目中发现了这个问题,可能也是您遇到的问题:“如果您已经使用pip
安装了numpy
,请注意pip v7+
正在缓存软件包安装,因此在任何安装后更改blas
后端都无法按预期工作(例如,旧后端仍在使用)。确保使用新设置重新编译numpy
,方法是使用--no cache dir
“@cyrf我建议不要使用Alpine linux(在浪费了大量时间之后),因为它的musl libc
得到的数学结果与glibc
不同!(另外,当您构建的每个映像都添加了所需的linux包时,从较小的Docker基础映像开始所需的空间节省可能无法实现,而不是使用较大但共享的基础映像。)@Jerry101我想给你买一种你喜欢的饮料。谢谢!你的评论帮助我避免了一个令人讨厌的零除例外。@cyrf不客气!这里有一个新帖子警告更多的高山陷阱:……也更大,跑得更慢。
File "/usr/local/var/pyenv/versions/2.7.16/envs/issue/lib/python2.7/site-packages/setuptools/sandbox.py", line 45, in _execfile
exec(code, globals, locals)
File "/var/folders/_b/q30qg_l50b5gvqd8y4_wb9h00000gn/T/easy_install-o9MJ5E/numpy-1.17.1/setup.py", line 31, in <module>
if sys.version_info[0] < 3:
RuntimeError: Python version >= 3.5 required.
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.