MadryLab / trak

A fast, effective data attribution method for neural networks in PyTorch
https://trak.csail.mit.edu/
MIT License
169 stars 22 forks source link

`fast-jl` doesn't work with `pip` version of 23 and above #69

Open BrunoKM opened 3 months ago

BrunoKM commented 3 months ago

If you try to install fast-jl or traker[fast] with pip==23.3.2 or pip==24.0, you get the following error:

Collecting fast-jl==0.1.2
  Using cached fast_jl-0.1.2.tar.gz (5.2 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
  ╰─> [20 lines of output]
      Traceback (most recent call last):
        File "/home/brunokm/.pyenv/versions/3.11.3/envs/kfac-ddpm/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/brunokm/.pyenv/versions/3.11.3/envs/kfac-ddpm/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/brunokm/.pyenv/versions/3.11.3/envs/kfac-ddpm/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-dtb41w9n/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-dtb41w9n/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-dtb41w9n/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 487, in run_setup
          super().run_setup(setup_script=setup_script)
        File "/tmp/pip-build-env-dtb41w9n/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 8, in <module>
      ModuleNotFoundError: No module named 'torch'
      [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.

The installation works fine on older versions of pip (e.g. pip=22.3.1).

tfriedel commented 1 month ago

As a workaround you can build wheels in a separate env: python3 -m pip wheel traker[fast] and then install them in an environment with a newer pip version.

BrunoKM commented 2 weeks ago

As an aside, this means that the package doesn't work with Python 3.12 and above, since pip<23 doesn't seem to work with newer releases of python (stackoverflow).