bottleneck: 'ERROR: Could not build wheels for bottleneck which use PEP 517 and cannot be installed directly'

Hi, I’m installing Bottleneck by fastai lib in a Suse 12 sp4 server, but had the error when building wheels for it. It says that uses PEP517 and cannot be installed directly. Funny thing is that I had it installed on my (base) but when I move to my app env it just jams on the error. There is a way to solve it? Thanks in advance!

(pycamlar) (base) filholf@127.0.0.1:~/pycamlar> pip install --no-cache-dir Bottleneck
Collecting Bottleneck
  Downloading https://files.pythonhosted.org/packages/62/d0/55bbb49f4fade3497de2399af70ec0a06e432c786b8623c878b11e90d456/Bottleneck-1.3.1.tar.gz (88kB)
     |████████████████████████████████| 92kB 1.1MB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: numpy in ./pycamlar/lib/python3.7/site-packages (from Bottleneck) (1.17.4)
Building wheels for collected packages: Bottleneck
  Building wheel for Bottleneck (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/filholf/pycamlar/pycamlar/bin/python /home/filholf/pycamlar/pycamlar/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpzdoiga7s
       cwd: /tmp/pip-install-gx8dza5k/Bottleneck
  Complete output (122 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-3.7
  creating build/lib.linux-x86_64-3.7/bottleneck
  copying bottleneck/__init__.py -> build/lib.linux-x86_64-3.7/bottleneck
  copying bottleneck/_pytesttester.py -> build/lib.linux-x86_64-3.7/bottleneck
  copying bottleneck/_version.py -> build/lib.linux-x86_64-3.7/bottleneck
  creating build/lib.linux-x86_64-3.7/bottleneck/benchmark
  copying bottleneck/benchmark/__init__.py -> build/lib.linux-x86_64-3.7/bottleneck/benchmark
  copying bottleneck/benchmark/autotimeit.py -> build/lib.linux-x86_64-3.7/bottleneck/benchmark
  copying bottleneck/benchmark/bench.py -> build/lib.linux-x86_64-3.7/bottleneck/benchmark
  copying bottleneck/benchmark/bench_detailed.py -> build/lib.linux-x86_64-3.7/bottleneck/benchmark
  creating build/lib.linux-x86_64-3.7/bottleneck/slow
  copying bottleneck/slow/__init__.py -> build/lib.linux-x86_64-3.7/bottleneck/slow
  copying bottleneck/slow/move.py -> build/lib.linux-x86_64-3.7/bottleneck/slow
  copying bottleneck/slow/nonreduce.py -> build/lib.linux-x86_64-3.7/bottleneck/slow
  copying bottleneck/slow/nonreduce_axis.py -> build/lib.linux-x86_64-3.7/bottleneck/slow
  copying bottleneck/slow/reduce.py -> build/lib.linux-x86_64-3.7/bottleneck/slow
  creating build/lib.linux-x86_64-3.7/bottleneck/src
  copying bottleneck/src/__init__.py -> build/lib.linux-x86_64-3.7/bottleneck/src
  copying bottleneck/src/bn_config.py -> build/lib.linux-x86_64-3.7/bottleneck/src
  copying bottleneck/src/bn_template.py -> build/lib.linux-x86_64-3.7/bottleneck/src
  creating build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/__init__.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/input_modification_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/list_input_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/memory_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/move_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/nonreduce_axis_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/nonreduce_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/reduce_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/scalar_input_test.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  copying bottleneck/tests/util.py -> build/lib.linux-x86_64-3.7/bottleneck/tests
  UPDATING build/lib.linux-x86_64-3.7/bottleneck/_version.py
  set build/lib.linux-x86_64-3.7/bottleneck/_version.py to '1.3.1'
  running build_ext
  running config
  compiling '_configtest.c':

  #pragma GCC diagnostic error "-Wattributes"

  int __attribute__((optimize("O3"))) have_attribute_optimize_opt_3(void*);

  int main(void)
  {
      return 0;
  }

  gcc -pthread -B /home/filholf/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o
  failure.
  removing: _configtest.c _configtest.o
  compiling '_configtest.c':

  #ifndef __cplusplus
  static inline int static_func (void)
  {
      return 0;
  }
  inline int nostatic_func (void)
  {
      return 0;
  }
  #endif
  int main(void) {
      int r1 = static_func();
      int r2 = nostatic_func();
      return r1 + r2;
  }

  gcc -pthread -B /home/filholf/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o
  failure.
  removing: _configtest.c _configtest.o
  compiling '_configtest.c':

  #ifndef __cplusplus
  static __inline__ int static_func (void)
  {
      return 0;
  }
  __inline__ int nostatic_func (void)
  {
      return 0;
  }
  #endif
  int main(void) {
      int r1 = static_func();
      int r2 = nostatic_func();
      return r1 + r2;
  }

  gcc -pthread -B /home/filholf/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o
  failure.
  removing: _configtest.c _configtest.o
  compiling '_configtest.c':

  #ifndef __cplusplus
  static __inline int static_func (void)
  {
      return 0;
  }
  __inline int nostatic_func (void)
  {
      return 0;
  }
  #endif
  int main(void) {
      int r1 = static_func();
      int r2 = nostatic_func();
      return r1 + r2;
  }

  gcc -pthread -B /home/filholf/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -c _configtest.c -o _configtest.o
  failure.
  removing: _configtest.c _configtest.o
  building 'bottleneck.reduce' extension
  creating build/temp.linux-x86_64-3.7
  creating build/temp.linux-x86_64-3.7/bottleneck
  creating build/temp.linux-x86_64-3.7/bottleneck/src
  gcc -pthread -B /home/filholf/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/tmp/pip-build-env-i9jvt975/overlay/lib/python3.7/site-packages/numpy/core/include -I/home/filholf/miniconda3/include/python3.7m -Ibottleneck/src -c bottleneck/src/reduce.c -o build/temp.linux-x86_64-3.7/bottleneck/src/reduce.o -O2
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for Bottleneck
  Running setup.py clean for Bottleneck
Failed to build Bottleneck
ERROR: Could not build wheels for Bottleneck which use PEP 517 and cannot be installed directly

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 31
  • Comments: 56

Most upvoted comments

On further investigation, I found this https://github.com/pypa/pip/issues/6256 which suggests the issue is that wheels simply aren’t supported with PEP 517 builds. My best guess would be to pip install --upgrade pip setuptools wheel and that should resolve the issue.

harshikanu’s suggestion worked for me. I’d like to expand on it a little bit

  1. Go to visual studio downloads at https://visualstudio.microsoft.com/downloads/
  2. Scroll down to ‘All Downloads’
  3. Click the dropdown for ‘Tools for Visual Studio 2019’
  4. Download ‘Build Tools for Visual Studio 2019’

and that should successfully update wheel and allow you to install bottleneck

Downgrading the pip version sorted the issue for me : pip install pip==18.1

This answer helped me fatal error: Python.h: No such file or directory .

#Just do

sudo apt install libpython3.x-dev # replace x with your version of python

Thanks to @corysm1th for the bottleneck/src/bottleneck Python.h: No such file or directory insight! 😃

@bayesfactor I think you need to have the latest version of python installed.

I’m receiving a same error and using python:3.6-slim docker image, I fixed it by installing gcc inside the container.

I’m receiving a same error and using python:3.6-slim docker image, I fixed it by installing gcc inside the container.

same error using ubuntu:18.04 with minconda and python==3.7; fixed by installing build-essential.

Another way to resolve this is to download Windows SDK 10 (latest version). If this alone doesn’t work then download Visual Studio 2019 (again whichever is the latest version). This updates the wheel process.

On further investigation, I found this pypa/pip#6256 which suggests the issue is that wheels simply aren’t supported with PEP 517 builds. My best guess would be to pip install --upgrade pip setuptools wheel and that should resolve the issue.

I tried the upgrade, but stills returning the wheel problem. I’m totally able to install it at base.

But as a quick update, I solved installing Anaconda instead of miniconda, but not sure about the relation of both or even what was the problem with miniconda. Could it be a repair when I uninstalled/installed.

I got the same issue when I execute: $ pipenv install bottleneck

I solved the problem with: $ python3.7 -m pipenv install bottleneck

OS: Ubuntu 18.04 LTS Python: 3.7 Pip: 20.0.2 Bottleneck: 1.3.2

@rhandberg I had the same issue on CentOS. My output contained the following error: bottleneck/src/bottleneck.h:6:20: fatal error: Python.h: No such file or directory #include <Python.h> ^ Which I solved by installing the python3 source yum install -y python3-devel

Hi, I solved this issue by downloading appropriate version of line_profiler from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#line_profiler and then installing it using “pip install your_package_version_.whl” Hope that it would help

https://github.com/pydata/bottleneck/issues/281#issuecomment-601697777

Same here, in a dockerfile from python:3.7-slim-buster adding RUN apt-get update && apt-get install -y build-essential solves the issue

Edit: On a linux server (as opposed to the docker image above) i also had to install python3.6-dev

QUICK UPDATE I took some time to research the internet about: PEP517 have some problems with virtualenvs but i already tried --no-use-pep517 with no success and still retrying an error.

I was having the same problem for Mac: ERROR: Failed building wheel for pycairo While installing cairo into a virtual env. I solved by running:

first: brew install cairo pkg-config then: pip install cairo

For alpine I needed apk add gcc libc-dev g++

Use sudo

harshikanu’s suggestion worked for me. I’d like to expand on it a little bit

  1. Go to visual studio downloads at https://visualstudio.microsoft.com/downloads/
  2. Scroll down to ‘All Downloads’
  3. Click the dropdown for ‘Tools for Visual Studio 2019’
  4. Download ‘Build Tools for Visual Studio 2019’

and that should successfully update wheel and allow you to install bottleneck

I am using python version - 3.6.0 still, I am getting error like

Failed building wheel for bottleneck Running setup.py clean for bottleneck Failed to build bottleneck Could not build wheels for bottleneck which use PEP 517 and cannot be installed directly

Hi All, having troubles installing fancyImpute ???

Open the atched file : [requirements.txt]

(https://github.com/pydata/bottleneck/files/6956991/requirements.txt)

Install each dependency in the txt file separately:

Since, i have noticed the cvxpy gives the error when installing:

ERROR: Failed building wheel for scs Failed to build scs ERROR: Could not build wheels for scs which use PEP 517 and cannot be installed directly

Then: use the following command to install it:

conda install -c conda-forge cvxpy

finally then 👍

pip install fancyimpute

#281

Note that on windows, after downloading “Visual Studio Build Tools 2019” from https://visualstudio.microsoft.com/visual-cpp-build-tools/ you must click modify and select and install the c++ build tools

i also try all of above solutions and they didn’t work for me. i use from the link you mention and install “Visual studio installer” i didn’t change setting and directly install it but after it launched while opening “PowerShell prompt”. i try again but it didn’t worked. did you change default setting while installing or choose an item?(like items in “workload” tab or “installation location”)

image

So you must select the “c++ build tools” in the top left of your screenshot before installing. For the c++ build tools I left the install as the default checkboxes

I solved with

sudo apt install libpython3.x-dev # replace x with your version of python Downgrading the pip version: pip install pip==18.1 then pip install bottleneck

I’m having the same issue. OS: Windows 10 Python : 3.8 pip:19.2.3 Bottleneck:1.3.2

I have also installed Build Tools for Visual Studio 2019.

For alpine linux i fixed with: apk add gcc libc-dev

check it with apt or etc in your linux distribution

for windows I installed c++ complier solved this problem

I’m receiving a same error and using python:3.6-slim docker image, I fixed it by installing gcc inside the container.

That is correct, solved the issue the same way by installing gcc inside my linux container: apt-get update apt-get install build-essential

So I’m an anaconda user who has been having the same problem with PEP517 using pip install. I tried “conda install bottleneck” and the installation just went through successfully.

I think this might be the case for anaconda users since I have been having similar inexplicable errors when trying to pip install other packages on my anaconda environment.

On further investigation, I found this pypa/pip#6256 which suggests the issue is that wheels simply aren’t supported with PEP 517 builds. My best guess would be to pip install --upgrade pip setuptools wheel and that should resolve the issue.

I tried the upgrade, but stills returning the wheel problem. I’m totally able to install it at base.

But as a quick update, I solved installing Anaconda instead of miniconda, but not sure about the relation of both or even what was the problem with miniconda. Could it be a repair when I uninstalled/installed.

I have the same problem!

I had the same problem with coincurve, and the solution was unbelievably easy!

I simply installed the lowest version that meets my needs. And it worked!

The latest version was 15.0.1 and I installed version 4.4.0 without any error.

I’m receiving a same error and using python:3.6-slim docker image, I fixed it by installing gcc inside the container.

how to install gcc inside the container?

Note that on windows, after downloading “Visual Studio Build Tools 2019” from https://visualstudio.microsoft.com/visual-cpp-build-tools/ you must click modify and select and install the c++ build tools

Fixed my problem installing mysqlclient on python virtual environment by:

sudo apt install libpython3.x-dev # replace x with your version of python

OS: Ubuntu 16 Python: 3.6

Same error in alpine:latest image with python 3.8 and pip-19.2.3