pydata / bottleneck

Fast NumPy array functions written in C
BSD 2-Clause "Simplified" License
1.07k stars 104 forks source link

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

Closed lcflorindo closed 4 years ago

lcflorindo commented 4 years ago

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
lcflorindo commented 4 years ago

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.

qwhelan commented 4 years ago

Could you provide the pip version?

Thanks for reporting!

qwhelan commented 4 years ago

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.

lcflorindo commented 4 years ago

Could you provide the pip version?

Thanks for reporting!

pip 19.2.3 from /home/filholf/anaconda3/lib/python3.7/site-packages/pip (python 3.7)

I'm assuming that my OS is not helping as well, I'm using Suse 12 SP4, my other server is an Ubuntu 16.04lts and everything worked fine...

lcflorindo commented 4 years ago

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.

qwhelan commented 4 years ago

Hmm, there really shouldn't be a difference between equivalent versions of Miniconda/Anaconda.

Good to hear it's resolved and apologies for not having a clear answer here. Please feel free to re-open if it re-surfaces.

AnakTeka commented 4 years ago

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

harshikanu commented 4 years ago

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.

bchen32 commented 4 years ago

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

qwhelan commented 4 years ago

@StormFalcon32 Do you happen to know the version of the Windows SDK you were on pre-upgrade? And pip and python as well?

bchen32 commented 4 years ago

Oh man I don't remember what version of Windows sdk but I was on Python 3.7.6 and I think 20.0.2 on pip

qwhelan commented 4 years ago

Thanks for checking - was mostly wondering if this was connected to the Python 3.8 issue some Arch users had reported (and should be fixed by 1.3.2 that I released a few minutes ago)

bayesfactor commented 4 years ago

I installed Build Tools for Visual Studio 2019, updated wheels, and I still have the error when installing Bottleneck-1.3.2.: Failed to build bottleneck ERROR: Could not build wheels for bottleneck which use PEP 517 and cannot be installed directly

python 3.5.5 wheel 0.34.2 pip 20.0.2

harshikanu commented 4 years ago

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

rhandberg commented 4 years ago

I am getting the same error with Bottleneck 1.3.2 on a Linux machine with Python 3.6.3, and the newest versions of pip and setuptools... It works fine with 1.3.1... Any ideas?

corysm1th commented 4 years ago

@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

                  ^`

Which I solved by installing the python3 source yum install -y python3-devel

cartene commented 4 years ago

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.

muneale commented 4 years ago

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

rasihilp commented 4 years ago

If still having issue, can try below steps. It worked for windows https://medium.com/@pierre_guillou/how-to-install-fastai-v1-on-windows-10-ca1bc370dce4

talha1503 commented 4 years ago

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.

neelnova commented 4 years ago

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

SergeiMerson-StartUpAI commented 4 years ago

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_packageversion.whl" Hope that it would help

marcmaxson commented 4 years ago

I couldn't get pipenv update to work with hdbscan but pip install -r requirements.txt worked for me on MacOS and in the docker container I was putting this into for AWS.

kevinsingapore commented 4 years ago

i got the same error; os: centos7-aarch64 python verison: 3.6.8 pip version: 20.1.1 and the error info:

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

and how to solve the error?

nanounanue commented 4 years ago

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

ee07dazn commented 4 years ago

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

chunweizhu commented 4 years ago

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!

lCrashl commented 4 years ago

I got it to work by installing the bottleneck manually with the respective wheel from this site: www.lfd.uci.edu/~gohlke/pythonlibs/.

Simply download the file for your Python version (in my case Bottleneck‑1.3.2‑cp38‑cp38‑win_amd64.whl) and install it:

pip install C:\Users\...

arwen-x commented 4 years ago

I had a similar problem while installing scikit-survival. pip install scikit-survival gave the same error. Instead I tried conda install -c sebp scikit-survival as stated in the official documentation and it worked (if you are using anaconda).

sirius0503 commented 4 years ago

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! :)

yuekaizhang commented 4 years ago

FYI, I fixed the same issue by installing the Development Tools on Centos. https://unix.stackexchange.com/questions/16422/cant-install-build-essential-on-centos/63068

victoria-n-w commented 4 years ago

I'm using Fedora 31, had the same error, running sudo dnf install python3-devel

solved it for me

Joaquin-aliaga commented 4 years ago

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

fudge-aruth commented 4 years ago

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.

minaee commented 4 years ago

I'm having the same issue but for pandas: OS: ubuntu server 20.04 for ARM Python : 3.8 pip:20.2.1 pandas-1.1.0

samuelBedard commented 4 years ago

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

k33p0y commented 4 years ago

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

arneyjfs commented 4 years ago

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

fateme1373 commented 4 years ago

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

arneyjfs commented 4 years ago

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

fengmang-k commented 4 years ago

for windows I installed c++ complier solved this problem

firefresh commented 4 years ago

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

check it with apt or etc in your linux distribution

ag-hcoder commented 3 years ago

Use sudo

nastynaz commented 3 years ago

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

Neele22 commented 3 years ago

I have the same issue when running pipenv install django-oscar

Error message: Could not build wheels for oscar which use PEP 517 and cannot be installed directly

I am using Windows 10 Home 1909, Python 3.8, pipenv 2018.11.26, and VScode 1.52.1

reyesGeorge commented 3 years ago

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

one-two-one-two commented 3 years ago

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

jl710107 commented 3 years ago

Hoy vienes 26 de marzo del 2021 Reporto este error al instalar pynacl En mi móvil A01 CORE DE SAMSUNG EN LA APP TERMUX Si es posible darme alguna solución lo agradesere. ERROR: Failed building wheel for pynacl Failed to build pynacl ERROR: Could not build wheels for pynacl which use PEP 517 and cannot be installed directly. Gracias

gmt710 commented 3 years ago

https://stackoverflow.com/questions/64038673/could-not-build-wheels-for-which-use-pep-517-and-cannot-be-installed-directly

It may helps.

gmt710 commented 3 years ago

https://stackoverflow.com/questions/64038673/could-not-build-wheels-for-which-use-pep-517-and-cannot-be-installed-directly

It may helps.