ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
PythonScipyPipEmbedded LinuxPython WheelPython Problem Overview
I'm trying to install scipy via pip on my 64 bit ARMV8 board. I have already installed openblas which is required by scipy. So, no issues with that. When i gave pip3 install scipy --trusted-host pypi.org --trusted-host files.pythonhosted.org
, I got the error Failed building wheel for scipy . I have pip3 and pip3.5 in my /usr/bin
and the rest of the pip is in /usr/lib64/python3.5/site-packages
.So basically, I also have pip.
I also tried to install scipy with --no-binary
option, which was one of the answers on net. But, it gave me the same error. Below's the error that i got.
ERROR:
Collecting scipy
Downloading scipy-1.4.1.tar.gz (24.6 MB)
|################################| 24.6 MB 6.6 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheels for collected packages: scipy
Building wheel for scipy (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 /usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpkklsvv4v
cwd: /tmp/pip-install-9v4nmof7/scipy
Complete output (50 lines):
/usr/bin/python3: No module named pip
Traceback (most recent call last):
File "/usr/lib64/python3.5/site-packages/setuptools/installer.py", line 128, in fetch_build_egg
subprocess.check_call(cmd)
File "/usr/lib64/python3.5/subprocess.py", line 271, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpp7fvgp36', '--quiet', 'numpy>=1.13.3']' returned non-zero exit status 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py", line 257, in <module>
main()
File "/usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py", line 240, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/lib64/python3.5/site-packages/pip-20.0.2-py3.5.egg/pip/_vendor/pep517/_in_process.py", line 182, in build_wheel
metadata_directory)
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 213, in build_wheel
wheel_directory, config_settings)
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 198, in _build_with_temp_dir
self.run_setup()
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 250, in run_setup
self).run_setup(setup_script=setup_script)
File "/usr/lib64/python3.5/site-packages/setuptools/build_meta.py", line 143, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 540, in <module>
setup_package()
File "setup.py", line 536, in setup_package
setup(**metadata)
File "/usr/lib64/python3.5/site-packages/numpy/distutils/core.py", line 126, in setup
dist = setup(**new_attr)
File "/usr/lib64/python3.5/site-packages/numpy/distutils/core.py", line 169, in setup
return old_setup(**new_attr)
File "/usr/lib64/python3.5/site-packages/setuptools/__init__.py", line 143, in setup
_install_setup_requires(attrs)
File "/usr/lib64/python3.5/site-packages/setuptools/__init__.py", line 138, in _install_setup_requires
dist.fetch_build_eggs(dist.setup_requires)
File "/usr/lib64/python3.5/site-packages/setuptools/dist.py", line 698, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib64/python3.5/site-packages/pkg_resources/__init__.py", line 783, in resolve
replace_conflicting=replace_conflicting
File "/usr/lib64/python3.5/site-packages/pkg_resources/__init__.py", line 1066, in best_match
return self.obtain(req, installer)
File "/usr/lib64/python3.5/site-packages/pkg_resources/__init__.py", line 1078, in obtain
return installer(requirement)
File "/usr/lib64/python3.5/site-packages/setuptools/dist.py", line 754, in fetch_build_egg
return fetch_build_egg(self, req)
File "/usr/lib64/python3.5/site-packages/setuptools/installer.py", line 130, in fetch_build_egg
raise DistutilsError(str(e))
distutils.errors.DistutilsError: Command '['/usr/bin/python3', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/tmp/tmpp7fvgp36', '--quiet', 'numpy>=1.13.3']' returned non-zero exit status 1
----------------------------------------
ERROR: Failed building wheel for scipy
Failed to build scipy
ERROR: Could not build wheels for scipy which use PEP 517 and cannot be installed directly
Python Solutions
Solution 1 - Python
I had the same issue with opencv-python. What worked for me was updating pip as:
pip3 install --upgrade pip
Note: I am using docker on Linux.
Solution 2 - Python
I had the same issue. I resolved this issue after run below command
pip install --upgrade pip setuptools wheel
Solution 3 - Python
My problem was not with scipy, but with xmlsec. The error message was almost the same:
ERROR: Could not build wheels for xmlsec which use PEP 517 and cannot be installed directly
I needed this library, because it was dependency for python3-saml. From the documentation I read that they first install these packages:
sudo apt-get install libxml2-dev libxmlsec1-dev
After doing this the installation of python3-saml worked for me.
pip3 -V
pip 20.2.3
python -V
Python 3.8.0b3
Probably the answer for other libraries is different, but they all need some package in order to be build, and you should find what is this package for you.
Solution 4 - Python
This error also comes for numpy
and if you are using the new M1 chip, I am afraid you have to install packages like numpy
differently. Check this out.
Solution 5 - Python
directly do
pip install p5py
pip install PEP517
this will do the work.
Solution 6 - Python
I faced the same problem. Seems that pip uses the pkg-config - if this is missing from your host OS it will run into this error. I resolved by:
sudo apt-get install -y pkg-config
Then re-run pip
Solution 7 - Python
I had this issue trying to install the tidyms package (which depends on scipy <= 1.4.1).
In my case, using python 3.8 instead of python 3.9 "solved" the issue (at least was able to install).
Solution 8 - Python
Had similar issues. I had to install some OS and after that, I was able to install missing scikit packages (scikit-sparse in my case)
sudo apt-get install libsuitesparse-dev
Solution 9 - Python
In my case I was installing from a requirements.txt
file with the command:
pip install -r requirements.txt
And was getting this error. I solved it installing the package individually (pip install scipy
) and replacing the version of Scipy I had in requirements.txt
with the one that worked.
Solution 10 - Python
If using Windows OS, verify under Start > Settings > Update & Security > Windows Security > Virus & threat protection > Protection History if Windows is identifying the file for installing PyInstaller with Pip as potential malware and thus blocking it. Worked for me.
Solution 11 - Python
ERROR: Failed building wheel for h5py
Failed to build h5py
ERROR: Could not build wheels for h5py which use PEP 517 and cannot be installed directly
I had a similar issue while installing Keras, resolved above issue using below steps:
-
conda install h5py
-
pip install keras
Solution 12 - Python
Try to install an order version. I had the same problem using python 3.10. I just downgrade it to python 3.9.7 and worked fine
Solution 13 - Python
Personally I get rid of this error by changing the #!/usr/bin/env python3.9
to #!/usr/bin/env python3
in the file located in ~/.poetry/bin/poetry
and running pip3 install --upgrade pip setuptools wheel
apparently python3.9 got some difficulties with poetry.
Solution 14 - Python
for the latest M1 type of mac , before creating a virtualenv do switch zsh to x86 type
Step 1:
arch -x86_64 zsh
uname -m
The output will be x86_64
which was arm64
earlier.
Step 2:
brew install openblas
export OPENBLAS=$(brew --prefix openblas)
export CFLAGS="-falign-functions=8 ${CFLAGS}"
pip install Cython pybind11 pythran
pip install --no-use-pep517 scipy
(no need after step 1 : --no-use-pep517 )
after that everything is normal
Solution 15 - Python
I had the same issue with Django Rest Framework on Docker (running on M1 Mac), and what worked for me was adding
RUN pip install --upgrade pip
just before I install all the project dependencies.
Solution 16 - Python
In my case, I just used a specific python version i.e 3.8 for my base image instead of latest
Before:
FROM python:3
After:
FROM python:3.8
Issue Resolved for me
Solution 17 - Python
I had the same issue and solved it by installing the module using conda. In my case conda install -c conda-forge statsmodels worked without error.
Solution 18 - Python
This error ocurred for me while trying to pip3 install aws-sam-cli awscli
on macOS 11.5.2 (M1 Chip).
Adding the follow two lines worked for me
dnf install -y python3-devel
dnf group install -y "Development Tools"
Full Dockerfile
FROM centos:8
RUN dnf upgrade -y && \
dnf module -y install nodejs:14 && \
dnf install -y python3 python3-devel git-all && \
dnf group install -y "Development Tools" && \
pip3 install --upgrade pip setuptools && \
pip3 install aws-sam-cli awscli
Solution 19 - Python
Try:
apt-get install build-essential python-dev python-pip
Then:
pip install couchbase
Solution 20 - Python
I ran into the same issue, albeit on an Apple M1 Macbook Pro. The solution in this case was to use Miniforge instead of Anaconda, because the latter doesn't support the arm64 architecture, yet.
Solution 21 - Python
The problem I was facing was that I upgraded to the next python version as soon as it was released.
Advice: wait for atleast 1-2 months before upgrading.
The different modules and libararies on the web aren't updated as soon as python update is released and hence they wont be compatible.
Simply downrade your python version to the version just before current one and you will be good to go.
No matter what you install or what you do you wont be able to install the module unless the devs update it.
Solution 22 - Python
I started getting this error after upgrading macOS to the latest version.
-
I had to re-install Xcode tools by running
xcode-select --install
first. -
Close and re-open terminal window
And then, was able to install pandas without any issues.
Solution 23 - Python
My issue was with mpi4py. My pip install generated this error, but installing the package through the Anaconda GUI did the trick.
Solution 24 - Python
Try
pip install --pre --extra-index https://pypi.anaconda.org/scipy-wheels-nightly/simple scikit-learn
for Python version 3.10 or greater.
Solution 25 - Python
i am using windows x64 based processor. still i havent found solution on this. i tried all above but not worked on me.
but yea after trying hundreds of times i found solution. i downgrade the python version from 3.10.0 to 3.8.10 and it is fine now
Solution 26 - Python
I faced similiar problem while installing pycocotools
. This answer is for anyone who tried to install pycocotools
but faced the similar type of problem while installing.
Try using this instead:
pip install pycocotools-windows
If you are using conda environment, use this as well:
conda install cython
Solution 27 - Python
If you are using Mac, it could be because of the Xcode license agreement.
Try below in a terminal.
sudo xcodebuild -license
Solution 28 - Python
Simply installing the dependent failing package (in your case scipy
) separately will fix the issue.
python3 -m pip install scipy
followed by pip installing the package you were trying in the first place.