Fastparquet Installation Error: Getting requirements to build wheel did not run successfully. exit code 1

1.1k views Asked by At

Thanks in advance for any help provided. I have no programming or computer science experience so I apologize for what are likely to be a series of very dumb questions!

I recently received a book that takes you through some data science and programming basics using NFL football data, and at the very beginning of the journey asks you to install the nfl_data_py package which will provide a bunch of NFL data for subsequent analysis. And of course, I am immediately running into errors I have no idea how to troubleshoot as I try to install the first package they mention.

I had trouble installing this nfl_data_py package and reading the error log, I made an educated guess that the error message I was receiving was related to fastparquet. So, I tried to install **fastparquet **on its own and received the below error detail.

Not really knowing what I'm doing, I searched the internet for some basic advice and can confirm I've installed the required packages for **fastparquet **per https://pypi.org/project/fastparquet/

I also followed the recommendations at https://packaging.python.org/en/latest/tutorials/installing-packages/ and confirmed I can 1) run Python from the command line 2) run pip from the command line and 3) update pip, setuptools, and wheel.

I'm still getting the same errors so I figure I should start with the fastparquet error since I am hoping resolving this resolves the nfl_data_py installation I'm running into.

Can anyone analyze the below and tell me what I am doing wrong?

C:\Users\erict\AppData\Local\Programs\Python\Python312\Scripts>pip install fastparquet
Collecting fastparquet
  Using cached fastparquet-2023.8.0.tar.gz (393 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [28 lines of output]
      Traceback (most recent call last):
        File "C:\Users\erict\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
          main()
        File "C:\Users\erict\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\erict\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\erict\AppData\Local\Temp\pip-build-env-v_fmec96\overlay\Lib\site-packages\setuptools\build_meta.py", line 355, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\erict\AppData\Local\Temp\pip-build-env-v_fmec96\overlay\Lib\site-packages\setuptools\build_meta.py", line 325, in _get_build_requires
          self.run_setup()
        File "C:\Users\erict\AppData\Local\Temp\pip-build-env-v_fmec96\overlay\Lib\site-packages\setuptools\build_meta.py", line 507, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "C:\Users\erict\AppData\Local\Temp\pip-build-env-v_fmec96\overlay\Lib\site-packages\setuptools\build_meta.py", line 341, in run_setup
          exec(code, locals())
        File "<string>", line 47, in <module>
        File "C:\Users\erict\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 389, in call
          with Popen(*popenargs, **kwargs) as p:
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "C:\Users\erict\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1026, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
        File "C:\Users\erict\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 1538, in _execute_child
          hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      FileNotFoundError: [WinError 2] The system cannot find the file specified
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip
1

There are 1 answers

2
mdurant On

You are running on python version 3.12, which is still pretty new. A binary "wheel" package has not yet been released for this version, so you system is trying to build the binary from the source distribution - and this requires extra packages to be present, particularly cython and a full C build toolchain.

You have these options:

  • install cython and try again (you may need some extra compression packages)
  • make an environment with python v 3.11 or less (conda is easier for this task than raw python/pip/venv)
  • wait until a new version of fastparquet appears, which should be with the next week or so.

Note: the most common and easiest way to install fastparquet and indeed any python numerical software is using anaconda/conda/mamba.