LaTeX-OCR icon indicating copy to clipboard operation
LaTeX-OCR copied to clipboard

[M1 Mac] Preparing metadata (pyproject.toml) did not run successfully.

Open slabzzz opened this issue 2 years ago • 9 comments

Here is my attempt to install after typing pip install pix2tex[gui]:

...
[good so far except for this]
...

Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [29 lines of output]
      Traceback (most recent call last):
        File "/Users/XXXXX/miniconda3/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 144, in prepare_metadata_for_build_wheel
          hook = backend.prepare_metadata_for_build_wheel
      AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/Users/XXXXX/miniconda3/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 351, in <module>
          main()
        File "/Users/XXXXX/miniconda3/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 333, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/Users/XXXXX/miniconda3/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 148, in prepare_metadata_for_build_wheel
          whl_basename = backend.build_wheel(metadata_directory, config_settings)
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-build-env-yf7rv9d7/overlay/lib/python3.10/site-packages/sipbuild/api.py", line 46, in build_wheel
          project = AbstractProject.bootstrap('wheel',
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-build-env-yf7rv9d7/overlay/lib/python3.10/site-packages/sipbuild/abstract_project.py", line 87, in bootstrap
          project.setup(pyproject, tool, tool_description)
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-build-env-yf7rv9d7/overlay/lib/python3.10/site-packages/sipbuild/project.py", line 585, in setup
          self.apply_user_defaults(tool)
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-install-0rrvvyha/pyqt5_13c55c14859b4c489fd026c913ef146b/project.py", line 68, in apply_user_defaults
          super().apply_user_defaults(tool)
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-build-env-yf7rv9d7/overlay/lib/python3.10/site-packages/pyqtbuild/project.py", line 70, in apply_user_defaults
          super().apply_user_defaults(tool)
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-build-env-yf7rv9d7/overlay/lib/python3.10/site-packages/sipbuild/project.py", line 236, in apply_user_defaults
          self.builder.apply_user_defaults(tool)
        File "/private/var/folders/jg/k3zgqw6n03z_knw_kyq5jmqh0000gn/T/pip-build-env-yf7rv9d7/overlay/lib/python3.10/site-packages/pyqtbuild/builder.py", line 69, in apply_user_defaults
          raise PyProjectOptionException('qmake',
      sipbuild.pyproject.PyProjectOptionException
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Any pointers as to possible causes?

slabzzz avatar Mar 15 '23 05:03 slabzzz

I have the same issue with Mac m1

AsdaStarke avatar Mar 20 '23 01:03 AsdaStarke

Same issue with Mac M2

RazeBerry avatar Apr 07 '23 05:04 RazeBerry

Same issue with Mac m1

gwannuu avatar Apr 10 '23 12:04 gwannuu

Looks like a problem with pyqt5 (Related #236)

I haven't gotten around to upgrade versions yet, but you can try out the pyqt6 fork like this

pip install "git+https://github.com/JoepdeJong/LaTeX-OCR.git@fix/m2-apple-silicon#egg=pix2tex[gui]"

lukas-blecher avatar Apr 12 '23 10:04 lukas-blecher

Looks like a problem with pyqt5 (Related #236)

I haven't gotten around to upgrade versions yet, but you can try out the pyqt6 fork like this

pip install "git+https://github.com/JoepdeJong/LaTeX-OCR.git@fix/m2-apple-silicon#egg=pix2tex[gui]"

I passed the error, but I am now having issues with some commands. Along with the wait time

pix2tex (long wait)

pix2tex
Traceback (most recent call last):
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1126, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/tokenization_utils_fast.py", line 25, in <module>
    import tokenizers.pre_tokenizers as pre_tokenizers_fast
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/__init__.py", line 79, in <module>
    from .tokenizers import (
ImportError: dlopen(/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/XXXXXX/miniconda3/bin/pix2tex", line 8, in <module>
    sys.exit(main())
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/__main__.py", line 27, in main
    from .cli import main
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/cli.py", line 22, in <module>
    from transformers import PreTrainedTokenizerFast
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1116, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1128, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.tokenization_utils_fast because of the following error (look up to see its traceback):
dlopen(/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

latexocr (short wait)

Traceback (most recent call last):
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1126, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/tokenization_utils_fast.py", line 25, in <module>
    import tokenizers.pre_tokenizers as pre_tokenizers_fast
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/__init__.py", line 79, in <module>
    from .tokenizers import (
ImportError: dlopen(/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/XXXXXX/miniconda3/bin/latexocr", line 8, in <module>
    sys.exit(main())
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/__main__.py", line 25, in main
    from .gui import main
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/gui.py", line 15, in <module>
    from pix2tex import cli
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/cli.py", line 22, in <module>
    from transformers import PreTrainedTokenizerFast
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1116, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1128, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.tokenization_utils_fast because of the following error (look up to see its traceback):
dlopen(/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

python -m pix2tex.api.run (short wait)

Traceback (most recent call last):
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1126, in _get_module
    return importlib.import_module("." + module_name, self.__name__)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/tokenization_utils_fast.py", line 25, in <module>
    import tokenizers.pre_tokenizers as pre_tokenizers_fast
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/__init__.py", line 79, in <module>
    from .tokenizers import (
ImportError: dlopen(/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/XXXXXX/miniconda3/bin/uvicorn", line 8, in <module>
    sys.exit(main())
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/uvicorn/main.py", line 403, in main
    run(
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/uvicorn/main.py", line 568, in run
    server.run()
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/uvicorn/server.py", line 59, in run
    return asyncio.run(self.serve(sockets=sockets))
  File "/Users/XXXXXX/miniconda3/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/uvicorn/server.py", line 66, in serve
    config.load()
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/uvicorn/config.py", line 471, in load
    self.loaded_app = import_from_string(self.app)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/uvicorn/importer.py", line 21, in import_from_string
    module = importlib.import_module(module_str)
  File "/Users/XXXXXX/miniconda3/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/api/app.py", line 7, in <module>
    from pix2tex.cli import LatexOCR
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/cli.py", line 22, in <module>
    from transformers import PreTrainedTokenizerFast
  File "<frozen importlib._bootstrap>", line 1075, in _handle_fromlist
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1116, in __getattr__
    module = self._get_module(self._class_to_module[name])
  File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/transformers/utils/import_utils.py", line 1128, in _get_module
    raise RuntimeError(
RuntimeError: Failed to import transformers.tokenization_utils_fast because of the following error (look up to see its traceback):
dlopen(/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/tokenizers/tokenizers.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

For this one, the app is openable via localhost but I get error when inputting an image:

ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=8502): Max retries exceeded with url: /predict/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x123f0e170>: Failed to establish a new connection: [Errno 61] Connection refused'))
Traceback:
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/pix2tex/api/streamlit.py", line 24, in <module>
    response = requests.post('http://127.0.0.1:8502/predict/', files={'file': uploaded_file.getvalue()})
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/requests/sessions.py", line 587, in request
    resp = self.send(prep, **send_kwargs)
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/requests/sessions.py", line 701, in send
    r = adapter.send(request, **kwargs)
File "/Users/XXXXXX/miniconda3/lib/python3.10/site-packages/requests/adapters.py", line 565, in send
    raise ConnectionError(e, request=request)

slabzzz avatar Apr 13 '23 03:04 slabzzz

Related: https://github.com/huggingface/tokenizers/issues/1036

A fix would be to upgrade the tokenizers package to 0.13.0

pip install -U tokenizers==0.13.0

This will print an error along the lines

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. pix2tex 0.0.29 requires tokenizers==0.12.1, but you have tokenizers 0.13.0 which is incompatible.

From an initial test it looks fine but more testing is required.

lukas-blecher avatar Apr 13 '23 09:04 lukas-blecher

I've added everything to the main branch, including tokenizers version.

Please try pip install -U pix2tex[gui]

lukas-blecher avatar Apr 13 '23 16:04 lukas-blecher

I met this bug. I try pip install pyqt6 failed with sipbuild.pyproject.PyProjectOptionException Error. I fix this by install pyqt6-tools manually. pip install pyqt6-tools. then install pyqt6 will success without exception.

Sologala avatar Feb 26 '24 14:02 Sologala

same issue with pip install lumibot

zapanfayaz avatar Mar 22 '24 03:03 zapanfayaz