问题
I created a virtualenv with pypy and tried to install scipy, but installation ended with the following error:
distutils.errors.DistutilsError: Setup script exited with error: Command "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" failed with exit status 1
There is a specific numpy version suited for pypy, but the only thing I found about scipy is an old call for donations. Has anything changed since then?
回答1:
Yes, it is possible, starting from Scipy 1.1.0. New enough PyPy (>= 6.0.0) and Numpy are however required, numpy>= 1.14.3, and preferably numpy>=1.15.0 when it's released. Installation can be done via the usual
pypy3 -mpip install numpy
pypy3 -mpip install scipy
assuming you have BLAS/LAPACK installed, so first you should make sure you are able to install numpy/scipy on normal Python from sources.
Nobody probably has tried whether this works with Pypy on Windows, so you are on your own there. It also probably won't work with NumPyPy --- you need the vanilla Numpy.
The other answers say "No" since that was the situation before May 2018.
回答2:
No. SciPy has bits and pieces talking to cpython's C API, and pypy does not support that.
** EDIT ** as of May 2018, this is incorrect, and scipy is pypy-compatible. See the answer by @pv for details.
回答3:
No, but miraculously, matplotlib
happens to work with pypy, both in jupyter notebook and as a standalone version (through wx widgets).
So it isn't that impossible.
回答4:
Seems that the link in @piv.s great answer does not contain what is needed anymore.
For installing BLAS/LAPACK and avoiding installation errors such as NotFoundError: no lapack/blas resources found
on Ubuntu first run:
sudo apt-get install libatlas-base-dev
Then using the pip
that corresponds to your pypy (not the system's):
pip install numpy
pip install scipy
or the one mentioned by piv. will do the trick.
回答5:
As of this writing, numpy and scipy are installable with PyPy through pip, but there's a catch: if you're going to run that within a virtualenv (which you probably should), remember to create the virtualenv with "--always-copy", otherwise virtualenv will create a symlink for the "include" dir, making it read-only for the user, which will break the installation for pybind11 (which is a dependency for scipy).
来源:https://stackoverflow.com/questions/34729783/is-it-possible-to-install-scipy-under-pypy