Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1ycx opened this issue May 5, 2020 · 4 comments
Labels
packaging Issues related to installing or building bottleneck
Milestone

Comments

@1ycx
Copy link

1ycx commented May 5, 2020

I was installing fastai library and the build was failing every time during Bottleneck installation. So I tried installing the Bottleneck library separately.
I also have the Visual Studio Build Tools v14 installed.
Python v3.6.8
Install via pip
Latest setuptools and wheel

This issue is already exists here #281 but its closed.

I also tried installing the v1.3.1 of Bottleneck but that fails too.
Here are my logs:

(env) PS C:\Users\Home\code\fastaiv1> pip install Bottleneck
Collecting Bottleneck
  Using cached Bottleneck-1.3.2.tar.gz (88 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Requirement already satisfied: numpy in c:\users\home\code\fastaiv1\env\lib\site-packages (from Bottleneck) (1.18.4)
Building wheels for collected packages: Bottleneck
  Building wheel for Bottleneck (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\home\code\fastaiv1\env\scripts\python.exe' 'c:\users\home\code\fastaiv1\env\lib\site-packages\pip\_vendor\pep517\_in_process.py' build_wheel 'C:\Users\Home\AppData\Local\Temp\tmpyzm5m1p_'
       cwd: C:\Users\Home\AppData\Local\Temp\pip-install-19wf0lri\Bottleneck
  Complete output (91 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.6
  creating build\lib.win-amd64-3.6\bottleneck
  copying bottleneck\_pytesttester.py -> build\lib.win-amd64-3.6\bottleneck
  copying bottleneck\_version.py -> build\lib.win-amd64-3.6\bottleneck
  copying bottleneck\__init__.py -> build\lib.win-amd64-3.6\bottleneck
  creating build\lib.win-amd64-3.6\bottleneck\benchmark
  copying bottleneck\benchmark\autotimeit.py -> build\lib.win-amd64-3.6\bottleneck\benchmark
  copying bottleneck\benchmark\bench.py -> build\lib.win-amd64-3.6\bottleneck\benchmark
  copying bottleneck\benchmark\bench_detailed.py -> build\lib.win-amd64-3.6\bottleneck\benchmark
  copying bottleneck\benchmark\__init__.py -> build\lib.win-amd64-3.6\bottleneck\benchmark
  creating build\lib.win-amd64-3.6\bottleneck\slow
  copying bottleneck\slow\move.py -> build\lib.win-amd64-3.6\bottleneck\slow
  copying bottleneck\slow\nonreduce.py -> build\lib.win-amd64-3.6\bottleneck\slow
  copying bottleneck\slow\nonreduce_axis.py -> build\lib.win-amd64-3.6\bottleneck\slow
  copying bottleneck\slow\reduce.py -> build\lib.win-amd64-3.6\bottleneck\slow
  copying bottleneck\slow\__init__.py -> build\lib.win-amd64-3.6\bottleneck\slow
  creating build\lib.win-amd64-3.6\bottleneck\src
  copying bottleneck\src\bn_config.py -> build\lib.win-amd64-3.6\bottleneck\src
  copying bottleneck\src\bn_template.py -> build\lib.win-amd64-3.6\bottleneck\src
  copying bottleneck\src\__init__.py -> build\lib.win-amd64-3.6\bottleneck\src
  creating build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\input_modification_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\list_input_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\memory_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\move_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\nonreduce_axis_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\nonreduce_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\reduce_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\scalar_input_test.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\util.py -> build\lib.win-amd64-3.6\bottleneck\tests
  copying bottleneck\tests\__init__.py -> build\lib.win-amd64-3.6\bottleneck\tests
  UPDATING build\lib.win-amd64-3.6\bottleneck/_version.py
  set build\lib.win-amd64-3.6\bottleneck/_version.py to '1.3.2'
  running build_ext
  running config
  compiling '_configtest.c':



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

  int main(void)
  {
      return 0;
  }

  C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\include" /Tc_configtest.c /Fo_configtest.obj
  _configtest.c
  _configtest.c(4): error C2143: syntax error: missing ')' before '('
  _configtest.c(4): error C2091: function returns function
  _configtest.c(4): error C2143: syntax error: missing ')' before 'string'
  _configtest.c(4): error C2143: syntax error: missing '{' before 'string'
  _configtest.c(4): error C2059: syntax error: 'string'
  _configtest.c(4): error C2059: syntax error: ')'
  failure.
  removing: _configtest.c _configtest.obj
  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;
  }

  C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\include" /Tc_configtest.c /Fo_configtest.obj
  _configtest.c
  success!
  removing: _configtest.c _configtest.obj
  building 'bottleneck.reduce' extension
  creating build\temp.win-amd64-3.6
  creating build\temp.win-amd64-3.6\Release
  creating build\temp.win-amd64-3.6\Release\bottleneck
  creating build\temp.win-amd64-3.6\Release\bottleneck\src
  C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\Home\AppData\Local\Temp\pip-build-env-ex_j6m8_\overlay\Lib\site-packages\numpy\core\include -Ic:\users\home\code\fastaiv1\env\include -IC:\Users\Home\AppData\Local\Programs\Python\Python36\include -IC:\Users\Home\AppData\Local\Programs\Python\Python36\include -Ibottleneck/src "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.25.28610\include" /Tcbottleneck/src/reduce.c /Fobuild\temp.win-amd64-3.6\Release\bottleneck/src/reduce.obj -O2
  reduce.c
  C:\Users\Home\AppData\Local\Programs\Python\Python36\include\pyconfig.h(59): fatal error C1083: Cannot open include file: 'io.h': No such file or directory
  error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.25.28610\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
  ----------------------------------------
  ERROR: Failed building wheel for Bottleneck
Failed to build Bottleneck
ERROR: Could not build wheels for Bottleneck which use PEP 517 and cannot be installed directly
@1ycx
Copy link
Author

1ycx commented May 5, 2020

Well, I installed the latest Win 10 SDK and it installs properly. But not everyone will want to install 1GB of Visual Studio Build Tools.

@qwhelan qwhelan added this to the 1.4.0 milestone May 7, 2020
@qwhelan
Copy link
Collaborator

qwhelan commented May 7, 2020

I've merged some improved logging but have not yet included it in a release.

I'm happy to consider PRs that would help us move towards releasing pre-compiled binaries that support runtime enabling of certain optimizations, but that's a lot more work than I have bandwidth for at the moment.

I think it's reasonable to expect Windows users to have the right SDK installed if they're not using Anaconda, as you're going to be seeing pretty terrible performance with the standard wheels otherwise (no BLAS/mkl/etc).

@qwhelan qwhelan added the packaging Issues related to installing or building bottleneck label May 22, 2020
@PriyatamNayak
Copy link

any update??

@PriyatamNayak
Copy link

@qwhelan Any update??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packaging Issues related to installing or building bottleneck
Projects
None yet
Development

No branches or pull requests

3 participants