是否可以在pypy下安装scipy?
Posted
技术标签:
【中文标题】是否可以在pypy下安装scipy?【英文标题】:Is it possible to install scipy under pypy? 【发布时间】:2016-04-16 05:58:21 【问题描述】:我用pypy创建了一个virtualenv并尝试安装scipy,但安装结束时出现以下错误:
distutils.errors.DistutilsError:安装脚本退出并出现错误:命令“cc -O2 -fPIC -Wimplicit -O2 -fPIC -Wimplicit -O2 -fPIC -Wimplicit -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE =1 -DNO_ATLAS_INFO=1 -DHAVE_CBLAS -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -Inumpy/core/include -Ibuild/src.linux-x86_64-3.2/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/home/luke/Programowanie/Python/connect4/venv-pypy/include -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -Ibuild/src.linux-x86_64-3.2/numpy/core /src/private -Ibuild/src.linux-x86_64-3.2/numpy/core/src/private -c numpy/core/src/multiarray/scalarapi.c -o build/temp.linux-x86_64-3.2/numpy/core /src/multiarray/scalarapi.o" 失败,退出状态为 1
有一个特定的numpy version suited for pypy,但我发现的关于 scipy 的唯一内容是一个旧的call for donations。从那以后有什么变化吗?
【问题讨论】:
scipy
已编译代码,就像 numpy
一样。所以即使你有一个 PyPy numpy 工作(它完全兼容吗?),这并不意味着你可以在它上面安装常规的scipy
。如果您没有找到 PyPy scipy
,则无法添加它。但请记住,scipy
是松散连接包的集合。
募捐呼吁是针对numpy proposal
。该提案明确排除了scipy
。换句话说,没有人正式开发scipy
版本。
@hpaulj 他们在文中稍后提到了 scipy:“具体来说,我们不打算(...)实现其他科学库,如 SciPy、matplotlib 或 biopython”
【参考方案1】:
是的,有可能,从Scipy 1.1.0 开始。然而,需要足够新的 PyPy (>= 6.0.0) 和 Numpy,numpy>= 1.14.3,最好在发布时 numpy>=1.15.0。安装可以通过通常的方式完成
pypy3 -mpip install numpy
pypy3 -mpip install scipy
假设你已经安装了 BLAS/LAPACK,所以首先你应该确保你能够从源代码在普通 Python 上安装 numpy/scipy。
可能没有人尝试过这是否适用于 Windows 上的 Pypy,所以你只能靠自己。它也可能不适用于 NumPyPy --- 你需要香草 Numpy。
其他答案说“不”,因为那是 2018 年 5 月之前的情况。
【讨论】:
从今天开始,您还必须安装 pybind11;但是,事情仍然因 pybind 错误而中断:/usr/local/include/detail/common.h:134:19: fatal error: cstddef: No such file or directory。【参考方案2】:没有。 SciPy 有与 cpython 的 C API 对话的点点滴滴,而 pypy 不支持。
编辑:截至 2018 年 5 月,这是不正确的,并且 scipy 与 pypy 兼容。请参阅@pv 的答案。了解详情。
【讨论】:
自 scipy 1.1.0 以来不再适用。见光伏。评论。 现在,我认为这个答案应该被删除。也许你可以添加一个它不起作用的 pypy 版本?【参考方案3】:似乎@piv.s 好答案中的链接不再包含所需的内容。
用于安装 BLAS/LAPACK 并避免在 Ubuntu 首次运行时出现 NotFoundError: no lapack/blas resources found
等安装错误:
sudo apt-get install libatlas-base-dev
然后使用与您的pypy(不是系统的)对应的pip
:
pip install numpy
pip install scipy
或 piv 提到的那个。会成功的。
【讨论】:
【参考方案4】:不,但奇迹般地,matplotlib
恰好与 pypy 一起工作,无论是在 jupyter notebook 还是作为 standalone version(通过 wx 小部件)。
所以 并非不可能。
【讨论】:
【参考方案5】:在撰写本文时,numpy 和 scipy 可以通过 pip 与 PyPy 一起安装,但有一个问题:如果您要在 virtualenv 中运行它(您可能应该这样做),请记住使用“-- always-copy”,否则 virtualenv 将为“include”目录创建一个符号链接,使其对用户只读,这将破坏 pybind11 的安装(这是 scipy 的依赖项)。
【讨论】:
以上是关于是否可以在pypy下安装scipy?的主要内容,如果未能解决你的问题,请参考以下文章
python3.5+win7 安装 numpy 和scipy的总结
python 安装numpy,scipy,matplotlib算法库