Unable to install Rasa on M1 Silicon Macbook

I have installed python 3.7.9 on Apple M1 silicon (Big Sur) and have ensured PATH is updated so my Python3 --version returns the same active version 3.7.9. There are multiple discard warnings in the installation, but finally, the installation fails with the below log trail. I assume this has to do with the hardware dependency resolution for Tensorflow and other packages that is not resolved for Apple M1 silicon macs yet. Any guidance on how to get Rasa running on M1 macs would be highly appreciated. Thanks!

Collecting rasa
  Using cached rasa-2.2.8-py3-none-any.whl (689 kB)
Collecting PyJWT[crypto]<3.0.0,>=2.0.0
  Using cached PyJWT-2.0.1-py3-none-any.whl (15 kB)
Collecting pyTelegramBotAPI<4.0.0,>=3.7.3
  Using cached pyTelegramBotAPI-3.7.6.tar.gz (81 kB)
    ERROR: Command errored out with exit status 1:
     command: /Users/ABCUserpath/Rasa/rasa-for-beginners/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_a770b00ed94c468aa26b3be417992151/setup.py'"'"'; __file__='"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_a770b00ed94c468aa26b3be417992151/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-pip-egg-info-sqqv9ais
         cwd: /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_a770b00ed94c468aa26b3be417992151/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/__init__.py", line 19, in <module>
        from setuptools.dist import Distribution
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/dist.py", line 34, in <module>
        from setuptools import windows_support
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/Users/ABCUser/.pyenv/versions/3.7.9/lib/python3.7/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/3d/44/dda2c6a43306b27eb23c327f780eb48479dfeda15f764f47004ebe60205e/pyTelegramBotAPI-3.7.6.tar.gz#sha256=859136cbd50e99922e1ea495d4ebe8235b2cb10fe419a5421f28855249db4278 (from https://pypi.org/simple/pytelegrambotapi/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading pyTelegramBotAPI-3.7.5.tar.gz (80 kB)
     |████████████████████████████████| 80 kB 431 kB/s 
    ERROR: Command errored out with exit status 1:
     command: /Users/ABCUserpath/Rasa/rasa-for-beginners/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_b3601d5f82e5462891fb62334f90f56a/setup.py'"'"'; __file__='"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_b3601d5f82e5462891fb62334f90f56a/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-pip-egg-info-jt_il25u
         cwd: /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_b3601d5f82e5462891fb62334f90f56a/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/__init__.py", line 19, in <module>
        from setuptools.dist import Distribution
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/dist.py", line 34, in <module>
        from setuptools import windows_support
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/Users/ABCUser/.pyenv/versions/3.7.9/lib/python3.7/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/b3/18/25fafb4e2b87a581fcc3576cbf2cb59f41481ae58003386fccd4d6e2b009/pyTelegramBotAPI-3.7.5.tar.gz#sha256=5d39667669b357ccf002955139f585954bcd451c8374110072d290e14a3d5022 (from https://pypi.org/simple/pytelegrambotapi/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading pyTelegramBotAPI-3.7.4.tar.gz (78 kB)
     |████████████████████████████████| 78 kB 598 kB/s 
    ERROR: Command errored out with exit status 1:
     command: /Users/ABCUserpath/Rasa/rasa-for-beginners/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_04dfe4440b904ab8a145185613e976b3/setup.py'"'"'; __file__='"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_04dfe4440b904ab8a145185613e976b3/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-pip-egg-info-d6nyxzi2
         cwd: /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_04dfe4440b904ab8a145185613e976b3/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/__init__.py", line 19, in <module>
        from setuptools.dist import Distribution
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/dist.py", line 34, in <module>
        from setuptools import windows_support
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/Users/ABCUser/.pyenv/versions/3.7.9/lib/python3.7/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/2b/43/c86538ae1a81308768cd2fc362c02d808cb99274fb502e2dd9f30ade6ce9/pyTelegramBotAPI-3.7.4.tar.gz#sha256=9b95f441c390fd30a4452a984406310f60a7f4803df57860ccb6a79881506c46 (from https://pypi.org/simple/pytelegrambotapi/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading pyTelegramBotAPI-3.7.3.tar.gz (76 kB)
     |████████████████████████████████| 76 kB 635 kB/s 
    ERROR: Command errored out with exit status 1:
     command: /Users/ABCUserpath/Rasa/rasa-for-beginners/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_835c956cca0a4953a075812e0eb5c6ec/setup.py'"'"'; __file__='"'"'/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_835c956cca0a4953a075812e0eb5c6ec/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-pip-egg-info-pb2ijzzx
         cwd: /private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-install-p19f9e8_/pytelegrambotapi_835c956cca0a4953a075812e0eb5c6ec/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/__init__.py", line 19, in <module>
        from setuptools.dist import Distribution
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/dist.py", line 34, in <module>
        from setuptools import windows_support
      File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
        import ctypes
      File "/Users/ABCUser/.pyenv/versions/3.7.9/lib/python3.7/ctypes/__init__.py", line 7, in <module>
        from _ctypes import Union, Structure, Array
    ModuleNotFoundError: No module named '_ctypes'
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e3/cd/b3ca6694c42c85c93973f2e89fba794d228314fcc83794247d7c3cedbaec/pyTelegramBotAPI-3.7.3.tar.gz#sha256=ce42d84442ff2ce4918de6550cf377253f61e28e4fac2634495683d12df66d00 (from https://pypi.org/simple/pytelegrambotapi/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Collecting rasa
  Using cached rasa-2.2.7-py3-none-any.whl (689 kB)
  Using cached rasa-2.2.6-py3-none-any.whl (689 kB)
  Using cached rasa-2.2.5-py3-none-any.whl (689 kB)
  Using cached rasa-2.2.4-py3-none-any.whl (688 kB)
  Using cached rasa-2.2.3-py3-none-any.whl (688 kB)
  Using cached rasa-2.2.2-py3-none-any.whl (688 kB)
  Using cached rasa-2.2.1-py3-none-any.whl (688 kB)
Collecting packaging<21.0,>=20.0
  Downloading packaging-20.9-py2.py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 1.1 MB/s 
Requirement already satisfied: setuptools>=41.0.0 in ./venv/lib/python3.7/site-packages (from rasa) (47.1.0)
Collecting oauth2client==4.1.3
  Using cached oauth2client-4.1.3-py2.py3-none-any.whl (98 kB)
Collecting jsonschema<3.3,>=3.2
  Using cached jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
Collecting numpy<2.0,>=1.16
  Downloading numpy-1.20.0.zip (8.0 MB)
     |████████████████████████████████| 8.0 MB 960 kB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
ERROR: Exception:
Traceback (most recent call last):
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 171, in _merge_into_criterion
    crit = self.state.criteria[name]
KeyError: 'numpy'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 189, in _main
    status = self.run(options, args)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 178, in wrapper
    return func(self, options, args)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 317, in run
    reqs, check_supported_wheels=not options.target_dir
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 122, in resolve
    requirements, max_rounds=try_to_avoid_resolution_too_deep,
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 453, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 347, in resolve
    failure_causes = self._attempt_to_pin_criterion(name, criterion)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 207, in _attempt_to_pin_criterion
    criteria = self._get_criteria_to_update(candidate)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 199, in _get_criteria_to_update
    name, crit = self._merge_into_criterion(r, parent=candidate)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _merge_into_criterion
    crit = Criterion.from_requirement(self._p, requirement, parent)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/resolvers.py", line 82, in from_requirement
    if not cands:
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/resolvelib/structs.py", line 124, in __bool__
    return bool(self._sequence)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 143, in __bool__
    return any(self)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 38, in _iter_built
    candidate = func()
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 169, in _make_candidate_from_link
    name=name, version=version,
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in __init__
    version=version,
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 144, in __init__
    self.dist = self._prepare()
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 226, in _prepare
    dist = self._prepare_distribution()
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 312, in _prepare_distribution
    self._ireq, parallel_builds=True,
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 457, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 501, in _prepare_linked_requirement
    req, self.req_tracker, self.finder, self.build_isolation,
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 66, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(finder, build_isolation)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 39, in prepare_distribution_metadata
    self._setup_isolation(finder)
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_internal/distributions/sdist.py", line 97, in _setup_isolation
    reqs = backend.get_requires_for_build_wheel()
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/pep517/wrappers.py", line 178, in get_requires_for_build_wheel
    'config_settings': config_settings
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/pep517/wrappers.py", line 284, in _call_hook
    raise BackendUnavailable(data.get('traceback', ''))
pip._vendor.pep517.wrappers.BackendUnavailable: Traceback (most recent call last):
  File "/Users/ABCUserpath/Rasa/rasa-for-beginners/venv/lib/python3.7/site-packages/pip/_vendor/pep517/_in_process.py", line 86, in _build_backend
    obj = import_module(mod_path)
  File "/Users/ABCUser/.pyenv/versions/3.7.9/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-build-env-f_of6_9m/overlay/lib/python3.7/site-packages/setuptools/__init__.py", line 23, in <module>
    from setuptools.dist import Distribution
  File "/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-build-env-f_of6_9m/overlay/lib/python3.7/site-packages/setuptools/dist.py", line 34, in <module>
    from setuptools import windows_support
  File "/private/var/folders/_p/krlq47gx2zq_1bljk7s5cg880000gn/T/pip-build-env-f_of6_9m/overlay/lib/python3.7/site-packages/setuptools/windows_support.py", line 2, in <module>
    import ctypes
  File "/Users/ABCUser/.pyenv/versions/3.7.9/lib/python3.7/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'

Your computer dependency is mismatched with rasa. You should try to create a virtual env and then install rasa

Yes I have created a venv and that’s where I am trying to install and getting this error.

We will have to wait for tensorflow to officially support M1 chips.

In the meantime, I’ve written an unofficial guide that might help. Full description can be found on the forum here: