9

I am trying to pip install sentence transformers. I am working on a Macbook pro with an M1 chip. I am using the following command:

pip3 install -U sentence-transformers

When I run this, I get this error/output and I do not know how to fix it...

Defaulting to user installation because normal site-packages is not writeable
Collecting sentence-transformers
  Using cached sentence-transformers-2.2.2.tar.gz (85 kB)
  Preparing metadata (setup.py) ... done
Collecting transformers<5.0.0,>=4.6.0
  Using cached transformers-4.21.0-py3-none-any.whl (4.7 MB)
Collecting tqdm
  Using cached tqdm-4.64.0-py2.py3-none-any.whl (78 kB)
Requirement already satisfied: torch>=1.6.0 in ./Library/Python/3.8/lib/python/site-packages (from sentence-transformers) (1.12.0)
Collecting torchvision
  Using cached torchvision-0.13.0-cp38-cp38-macosx_11_0_arm64.whl (1.2 MB)
Requirement already satisfied: numpy in ./Library/Python/3.8/lib/python/site-packages (from sentence-transformers) (1.23.1)
Collecting scikit-learn
  Using cached scikit_learn-1.1.1-cp38-cp38-macosx_12_0_arm64.whl (7.6 MB)
Collecting scipy
  Using cached scipy-1.8.1-cp38-cp38-macosx_12_0_arm64.whl (28.6 MB)
Collecting nltk
  Using cached nltk-3.7-py3-none-any.whl (1.5 MB)
Collecting sentencepiece
  Using cached sentencepiece-0.1.96.tar.gz (508 kB)
  Preparing metadata (setup.py) ... done
Collecting huggingface-hub>=0.4.0
  Using cached huggingface_hub-0.8.1-py3-none-any.whl (101 kB)
Collecting requests
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting pyyaml>=5.1
  Using cached PyYAML-6.0.tar.gz (124 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: typing-extensions>=3.7.4.3 in ./Library/Python/3.8/lib/python/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (4.3.0)
Requirement already satisfied: filelock in ./Library/Python/3.8/lib/python/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (3.7.1)
Requirement already satisfied: packaging>=20.9 in ./Library/Python/3.8/lib/python/site-packages (from huggingface-hub>=0.4.0->sentence-transformers) (21.3)
Collecting tokenizers!=0.11.3,<0.13,>=0.11.1
  Using cached tokenizers-0.12.1.tar.gz (220 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 "/Users/joeyoneill/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
          main()
        File "/Users/joeyoneill/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/Users/joeyoneill/Library/Python/3.8/lib/python/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages/setuptools/build_meta.py", line 146, in get_requires_for_build_wheel
          return self._get_build_requires(
        File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages/setuptools/build_meta.py", line 127, in _get_build_requires
          self.run_setup()
        File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages/setuptools/build_meta.py", line 142, in run_setup
          exec(compile(code, __file__, 'exec'), locals())
        File "setup.py", line 2, in <module>
          from setuptools_rust import Binding, RustExtension
        File "/private/var/folders/bg/ncfh283n4t39vqhvbd5n9ckh0000gn/T/pip-build-env-vjj6eow8/overlay/lib/python3.8/site-packages/setuptools_rust/__init__.py", line 1, in <module>
          from .build import build_rust
        File "/private/var/folders/bg/ncfh283n4t39vqhvbd5n9ckh0000gn/T/pip-build-env-vjj6eow8/overlay/lib/python3.8/site-packages/setuptools_rust/build.py", line 20, in <module>
          from setuptools.command.build import build as CommandBuild  # type: ignore[import]
      ModuleNotFoundError: No module named 'setuptools.command.build'
      [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.

Can anybody tell me what I should do or what is wrong with what I am currently doing? I factory reset my Mac and re-downloaded everything but I still get this same error. I am stumped.

Joey O'Neill
  • 124
  • 1
  • 6
  • If you have tried the installation related suggestions like I had, and it didn't fix your problem, try creating a fresh virtual environment. That solved my problem. `rm -rf venv` `virtualenv -p python3.9 venv; . venv/bin/activate; pip install -r requirements.txt`. (This page shows up at the top when searching for the error so I thought would be better to mention this here as a comment) – Ayush Mandowara Jun 14 '23 at 17:32

3 Answers3

15

You can try to upgrade those packages:

python3 -m pip install --upgrade pip setuptools wheel
Lorenzo Bonetti
  • 530
  • 3
  • 12
0

I posted this as an issue to the actual Sentence Transformers GitHub page. Around 4 days ago I was given this answer by a "Federico Viticci" which resolved the issue and allowed me to finally install the library:

"For what it is worth, I was having the exact issue. Installing it directly from source using

pip install git+https://github.com/huggingface/transformers

fixed it on my M1 Max MacBook Pro."

Original Git Issue here: https://github.com/UKPLab/sentence-transformers/issues/1652

Joey O'Neill
  • 124
  • 1
  • 6
0

If you have tried the installation related suggestions like I had, and it didn't fix your problem, try creating a fresh virtual environment. That solved my problem. Assuming you are working on Ubuntu and your environment is called venv.

  1. Remove your Virtual Environment
rm -rf venv
  1. Create a new one
virtualenv -p python3.9 venv
  1. Activate and Install
. venv/bin/activate; pip install -r requirements.txt 

This page shows up at the top when searching for the error so I thought would be good to mention how I fixed it. The answer has nothing specifically to do with OP's problem related to transformers.

Ayush Mandowara
  • 490
  • 5
  • 18