jxmorris12 / vec2text

utilities for decoding deep representations (like sentence embeddings) back to text
Other
701 stars 77 forks source link

`pylcs` dependency causes installation to fail #69

Open t-shoemaker opened 4 hours ago

t-shoemaker commented 4 hours ago

pylcs depends on a relatively old version of C++, which in turn relies on certain deprecated headers. For newer versions of C++, the dependency will cause a failed wheel build:

  Building wheel for pylcs (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pylcs (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [21 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.macosx-10.13-x86_64-cpython-312/pylcs
      copying pylcs/__init__.py -> build/lib.macosx-10.13-x86_64-cpython-312/pylcs
      running build_ext
      creating var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T
      clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /Users/<USER>/.micromamba/envs/err/include -fPIC -O2 -isystem /Users/<USER>/.micromamba/envs/err/include -I/Users/<USER>/.micromamba/envs/err/include/python3.12 -c /var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/tmpnh1r0yi6.cpp -o var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/tmpnh1r0yi6.o -std=c++14
      clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /Users/<USER>/.micromamba/envs/err/include -fPIC -O2 -isystem /Users/<USER>/.micromamba/envs/err/include -I/Users/<USER>/.micromamba/envs/err/include/python3.12 -c /var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/tmparoys27r.cpp -o var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/tmparoys27r.o -fvisibility=hidden
      building '_pylcs' extension
      creating build/temp.macosx-10.13-x86_64-cpython-312/src
      clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -Wall -fPIC -O2 -isystem /Users/<USER>/.micromamba/envs/err/include -fPIC -O2 -isystem /Users/<USER>/.micromamba/envs/err/include -I/private/var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/pip-build-env-z059g6n8/overlay/lib/python3.12/site-packages/pybind11/include -I/private/var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/pip-build-env-z059g6n8/overlay/lib/python3.12/site-packages/pybind11/include -I/Users/<USER>/.micromamba/envs/err/include/python3.12 -c src/main.cpp -o build/temp.macosx-10.13-x86_64-cpython-312/src/main.o -stdlib=libc++ -mmacosx-version-min=10.7 -DVERSION_INFO=\"0.1.1\" -std=c++14 -fvisibility=hidden
      In file included from src/main.cpp:1:
      In file included from /private/var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/pip-build-env-z059g6n8/overlay/lib/python3.12/site-packages/pybind11/include/pybind11/pybind11.h:12:
      In file included from /private/var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/pip-build-env-z059g6n8/overlay/lib/python3.12/site-packages/pybind11/include/pybind11/detail/class.h:12:
      In file included from /private/var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/pip-build-env-z059g6n8/overlay/lib/python3.12/site-packages/pybind11/include/pybind11/attr.h:13:
      /private/var/folders/h7/tzxfms7d2z7gwlgtbvw15msc0000gn/T/pip-build-env-z059g6n8/overlay/lib/python3.12/site-packages/pybind11/include/pybind11/detail/common.h:314:10: fatal error: 'cstddef' file not found
        314 | #include <cstddef>
            |          ^~~~~~~~~
      1 error generated.
      error: command '/usr/bin/clang++' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pylcs
Failed to build pylcs
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pylcs)

Normally I would open an issue with pylcs (or resign myself to using a specific C++), but it also seems like this is a residual dependency in vec2text. For example:

grep -r "pylcs" vec2text/*
vec2text/requirements.txt:9:pylcs

Am I missing something here, or can I safely drop pylcs from requirements.txt and move on?

Thanks so much for all this work. It's a fascinating project!

t-shoemaker commented 3 hours ago

A quick follow-up: pylcs is introduced with 49aa4c84358e992b4970f050ddd17c944d459241. Unless there is some backdoor dependency I am missing, nothing in that commit appears to use the package