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

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

Open
slabzzz opened this issue Mar 15, 2023 · 9 comments
Open

Comments

@slabzzz
Copy link

slabzzz commented Mar 15, 2023

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?

@AsdaStarke
Copy link

I have the same issue with Mac m1

@RazeBerry
Copy link

Same issue with Mac M2

@gwannuu
Copy link

gwannuu commented Apr 10, 2023

Same issue with Mac m1

@lukas-blecher
Copy link
Owner

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]"

@slabzzz
Copy link
Author

slabzzz commented Apr 13, 2023

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)

@lukas-blecher
Copy link
Owner

lukas-blecher commented Apr 13, 2023

Related: huggingface/tokenizers#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
Copy link
Owner

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

Please try pip install -U pix2tex[gui]

@Sologala
Copy link

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.

@zapanfayaz
Copy link

same issue with pip install lumibot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants