我用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的/核心/ SRC /私有-Inumpy /型芯/包括-Ibuild / src.linux-x86_64-3.2 / numpy的/核心/包含/ numpy的-Inumpy /核心/ src目录/私人-Inumpy /核心/ src目录-Inumpy /核心-Inumpy /核心/ src目录/ npymath -Inumpy /核心/ src目录/多阵列-Inumpy /核心/ src目录/ umath -Inumpy /核心/ 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。从那时起有什么变化吗?
答案 0 :(得分:12)
是的,可以从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月之前的情况。
答案 1 :(得分:7)
没有。 SciPy与cpython的C API交互,并且pypy不支持它。
**编辑**截至2018年5月,这是不正确的,scipy与pypy兼容。有关详细信息,请参阅@pv的答案。
答案 2 :(得分:2)
不,但奇迹般地,matplotlib
恰好与pypy合作,包括jupyter notebook和standalone version(通过wx小部件)。
所以不不可能。
答案 3 :(得分:1)
在撰写本文时,numpy和scipy可通过pip与PyPy一起安装,但有一个陷阱:如果要在virtualenv中运行它(可能应该这样做),请记住使用“- always-copy”,否则virtualenv将为“ include”目录创建一个符号链接,使其对用户只读,这将中断pybind11的安装(这是scipy的依赖项)。
答案 4 :(得分:0)
似乎@ piv.s好的答案中的链接不再包含所需的内容。
要在首次运行Ubuntu时安装BLAS / LAPACK并避免诸如NotFoundError: no lapack/blas resources found
之类的安装错误:
sudo apt-get install libatlas-base-dev
然后使用与您的pypy(不是系统的)相对应的pip
:
pip install numpy
pip install scipy
或piv提到的那个。会成功的。