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 arm64 release binaries #3129

Closed
lutzroeder opened this issue Nov 26, 2020 · 26 comments
Closed

M1 arm64 release binaries #3129

lutzroeder opened this issue Nov 26, 2020 · 26 comments
Labels

Comments

@lutzroeder
Copy link
Member

lutzroeder commented Nov 26, 2020

Bug Report

Describe the bug

ONNX fails to install on Apple M1.

System information

  • OS Platform and Distribution: macOS Big Sur 11.0.1 (20D91)
  • ONNX version: 1.8
  • Python version: 3.9.2

Reproduction instructions

~: where pip
/opt/homebrew/bin/pip
~: where python
/opt/homebrew/bin/python
/usr/bin/python
~: python --version
Python 3.9.2
~: file /opt/homebrew/bin/python
/opt/homebrew/bin/python: Mach-O 64-bit executable arm64
~: pip install onnx --no-use-pep517
Collecting onnx
  Downloading onnx-1.8.1.tar.gz (5.2 MB)
     |████████████████████████████████| 5.2 MB 8.8 MB/s 
Requirement already satisfied: protobuf in /opt/homebrew/lib/python3.9/site-packages (from onnx) (3.15.6)
Requirement already satisfied: numpy>=1.16.6 in /opt/homebrew/lib/python3.9/site-packages (from onnx) (1.21.0.dev0+934.g6222e283f)
Requirement already satisfied: six in /opt/homebrew/Cellar/protobuf/3.15.5/libexec/lib/python3.9/site-packages (from onnx) (1.15.0)
Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/homebrew/lib/python3.9/site-packages (from onnx) (3.7.4.3)
Building wheels for collected packages: onnx
  Building wheel for onnx (setup.py) ... done
  Created wheel for onnx: filename=onnx-1.8.1-cp39-cp39-macosx_11_0_arm64.whl size=6982804 sha256=3719bd2a56e9c59b51f966ee54b2b062eb5db2dbb58872d412370ad77c9817ca
  Stored in directory: ~/Library/Caches/pip/wheels/65/b6/11/8c4e20e8dde68dff18763afd67c996878dba2c63266be062be
Successfully built onnx
Installing collected packages: onnx
Successfully installed onnx-1.8.1
~: python
Python 3.9.2 (default, Feb 24 2021, 05:06:40) 
[Clang 12.0.0 (clang-1200.0.32.29)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/__init__.py", line 8, in <module>
    from .onnx_cpp2py_export import ONNX_ML
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so, 2): no suitable image found.  Did find:
	/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so: mach-o, but wrong architecture
	/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so: mach-o, but wrong architecture
~: pip install onnx
Collecting onnx
  Downloading onnx-1.8.1.tar.gz (5.2 MB)
     |████████████████████████████████| 5.2 MB 1.5 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Requirement already satisfied: typing-extensions>=3.6.2.1 in /opt/homebrew/lib/python3.9/site-packages (from onnx) (3.7.4.3)
Requirement already satisfied: numpy>=1.16.6 in /opt/homebrew/lib/python3.9/site-packages (from onnx) (1.21.0.dev0+934.g6222e283f)
Requirement already satisfied: six in /opt/homebrew/Cellar/protobuf/3.15.5/libexec/lib/python3.9/site-packages (from onnx) (1.15.0)
Requirement already satisfied: protobuf in /opt/homebrew/lib/python3.9/site-packages (from onnx) (3.15.6)
Building wheels for collected packages: onnx
  Building wheel for onnx (PEP 517) ... error
  ERROR: Command errored out with exit status 1:
   command: /opt/homebrew/opt/python@3.9/bin/python3.9 /opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/tmp1i639blu
       cwd: /private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-install-acwqzy4c/onnx_556a4995cbd04963975608a133cd7507
  Complete output (62 lines):
  fatal: not a git repository (or any of the parent directories): .git
  /private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/dist.py:634: UserWarning: Usage of dash-separated 'license-file' will not be supported in future versions. Please use the underscore name 'license_file' instead
    warnings.warn(
  /private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/dist.py:634: UserWarning: Usage of dash-separated 'max-line-length' will not be supported in future versions. Please use the underscore name 'max_line_length' instead
    warnings.warn(
  running bdist_wheel
  running build
  running build_py
  running create_version
  running cmake_build
  Traceback (most recent call last):
    File "/opt/homebrew/bin/cmake", line 5, in <module>
      from cmake import cmake
  ModuleNotFoundError: No module named 'cmake'
  Traceback (most recent call last):
    File "/opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
      main()
    File "/opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/opt/homebrew/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 204, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
    File "/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 216, in build_wheel
      return self._build_with_temp_dir(['bdist_wheel'], '.whl',
    File "/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 202, in _build_with_temp_dir
      self.run_setup()
    File "/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 253, in run_setup
      super(_BuildMetaLegacyBackend,
    File "/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 321, in <module>
      setuptools.setup(
    File "/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
      return distutils.core.setup(**attrs)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-build-env-q_nqw87i/overlay/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "setup.py", line 217, in run
      self.run_command('cmake_build')
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "setup.py", line 203, in run
      subprocess.check_call(cmake_args)
    File "/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 373, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['/opt/homebrew/bin/cmake', '-DPYTHON_INCLUDE_DIR=/opt/homebrew/Cellar/python@3.9/3.9.2_1/Frameworks/Python.framework/Versions/3.9/include/python3.9', '-DPYTHON_EXECUTABLE=/opt/homebrew/Cellar/python@3.9/3.9.2_1/bin/python3.9', '-DBUILD_ONNX_PYTHON=ON', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cpython-39-darwin.so', '-DCMAKE_BUILD_TYPE=Release', '-DONNX_ML=1', '/private/var/folders/2b/hhkbvbds4x71jgh0pk3rfkx00000gn/T/pip-install-acwqzy4c/onnx_556a4995cbd04963975608a133cd7507']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for onnx
Failed to build onnx
ERROR: Could not build wheels for onnx which use PEP 517 and cannot be installed directly
@lutzroeder lutzroeder added the bug label Nov 26, 2020
lutzroeder added a commit to lutzroeder/netron that referenced this issue Dec 5, 2020
lutzroeder added a commit to lutzroeder/netron that referenced this issue Dec 5, 2020
@lutzroeder lutzroeder changed the title Apple M1 support M1 arm64 release binaries Mar 13, 2021
@islavutin
Copy link

I managed to get it working on Apple M1 by installing protobuf from brew and then compiling onnx as suggested about. if protobuf is installed from pip then onnx compilation failed on my side

brew install protobuf
pip3 install onnx==1.8.1 --no-use-pep517

@microprediction
Copy link

microprediction commented Oct 1, 2021

Some users will need:

  brew install cmake
  brew install protobuf
  pip3 install onnx --no-use-pep517

I found 1.10.1 works for me but not 1.8.1

@lutzroeder
Copy link
Member Author

@islavutin @microprediction

~: pip3 install onnx --no-use-pep517
[...]
~: python
Python 3.9.7 (default, Sep  3 2021, 04:31:11) 
[Clang 12.0.5 (clang-1205.0.22.9)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/__init__.py", line 10, in <module>
    from .onnx_cpp2py_export import ONNX_ML
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so, 2): no suitable image found.  Did find:
	/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so: mach-o, but wrong architecture
	/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so: mach-o, but wrong architecture

@microprediction
Copy link

microprediction commented Oct 28, 2021

@islavutin I think I was on Py 3.8.2. I don't suppose adding the --upgrade helps you? Life on planet M1 is tricky.

@Fohlen
Copy link

Fohlen commented Nov 30, 2021

I can confirm that onnx==1.10.2 is installable on Python 3.9.7 on my M1.

ProductName:	macOS
ProductVersion:	12.0.1
BuildVersion:	21A559

Apple clang version 13.0.0 (clang-1300.0.29.3)
Target: arm64-apple-darwin21.1.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

For me the following worked out of the box:

brew install cmake protobuf
pip3 install --pre -i https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy
pip3 install onnx

I obtained Python 3.9.7 using pyenv. @ZetiMente the problem here is that NumPy currently does not run out of the box on the M1. Using the nightly however does work. @lutzroeder can this be closed?

@microprediction
Copy link

Thanks @Fohlen I'll try that.

@lutzroeder
Copy link
Member Author

lutzroeder commented Nov 30, 2021

@Fohlen the issue isn't with installing. If you run import onnx in Python arm64 this error should show:

~: which python
/opt/homebrew/bin/python
~: file /opt/homebrew/bin/python
/opt/homebrew/bin/python: Mach-O 64-bit executable arm64
~: python
Python 3.9.9 (main, Nov 21 2021, 03:16:13) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/__init__.py", line 10, in <module>
    from .onnx_cpp2py_export import ONNX_ML
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so, 0x0002): tried: '/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file), '/usr/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file)
>>> 

@Fohlen
Copy link

Fohlen commented Nov 30, 2021

@Fohlen the issue isn't with installing. If you run import onnx in Python arm64 this error should show:

~: which python
/opt/homebrew/bin/python
~: file /opt/homebrew/bin/python
/opt/homebrew/bin/python: Mach-O 64-bit executable arm64
~: python
Python 3.9.9 (main, Nov 21 2021, 03:16:13) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/__init__.py", line 10, in <module>
    from .onnx_cpp2py_export import ONNX_ML
ImportError: dlopen(/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so, 0x0002): tried: '/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file), '/usr/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file)
>>> 

I can import onnx just fine by using import onnx. So for me this is not reproducible. How did you obtain your Python?

@lutzroeder
Copy link
Member Author

lutzroeder commented Nov 30, 2021

@Fohlen via Homebrew install. Are you running the arm64 version of brew and python and not the Rosetta emulation?

~: which brew
/opt/homebrew/bin/brew
~: brew install python

@Fohlen
Copy link

Fohlen commented Nov 30, 2021

@Fohlen via Homebrew install. Are you running the arm64 version of brew and python and not the Rosetta emulation?

~: which brew
/opt/homebrew/bin/brew
~: brew install python

My python resolves to:

/Users/fohlen/.pyenv/shims/python

Which is Python 3.9.7 installed by PyEnv (without Rosetta). Maybe you can give that a try and see if it helps. The homebrew-ish version of Python has been known to cause many different issues down the road.

@lutzroeder
Copy link
Member Author

lutzroeder commented Nov 30, 2021

@Fohlen same issue. Can you check the Python binary is Mach-O 64-bit executable arm64. There are only x86_64.whl so ideally a) an arm64 or universal wheel should be made available or b) fall back to build from source for arm64 or c) print an error.

~: brew install pyenv
[...]
######################################################################## 100.0%
==> Pouring pyenv--2.2.2.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/pyenv/2.2.2: 834 files, 2.8MB
==> Running `brew cleanup pyenv`...
[...]
~: pyenv install 3.9.9
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.9.tar.xz...
-> https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz
Installing Python-3.9.9...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.9 to ~/.pyenv/versions/3.9.9
~: file ~/.pyenv/versions/3.9.9/bin/python
~/.pyenv/versions/3.9.9/bin/python: Mach-O 64-bit executable arm64
~: ~/.pyenv/versions/3.9.9/bin/python -m pip install --pre -i https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy 
Looking in indexes: https://pypi.anaconda.org/scipy-wheels-nightly/simple
Collecting numpy
  Downloading https://pypi.anaconda.org/scipy-wheels-nightly/simple/numpy/1.23.0.dev0%2B73.g657e6a583/numpy-1.23.0.dev0%2B73.g657e6a583-cp39-cp39-macosx_11_0_arm64.whl (12.8 MB)
     |████████████████████████████████| 12.8 MB 922 kB/s 
Installing collected packages: numpy
Successfully installed numpy-1.23.0.dev0+73.g657e6a583
~: ~/.pyenv/versions/3.9.9/bin/python -m pip install onnx                                                                
Collecting onnx
  Using cached onnx-1.10.2-cp39-cp39-macosx_12_0_arm64.whl
Requirement already satisfied: numpy>=1.16.6 in ./.pyenv/versions/3.9.9/lib/python3.9/site-packages (from onnx) (1.23.0.dev0+73.g657e6a583)
Collecting protobuf
  Using cached protobuf-3.19.1-py2.py3-none-any.whl (162 kB)
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting typing-extensions>=3.6.2.1
  Downloading typing_extensions-4.0.0-py3-none-any.whl (22 kB)
Installing collected packages: typing-extensions, six, protobuf, onnx
Successfully installed onnx-1.10.2 protobuf-3.19.1 six-1.16.0 typing-extensions-4.0.0
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '~/.pyenv/versions/3.9.9/bin/python -m pip install --upgrade pip' command.
~: ~/.pyenv/versions/3.9.9/bin/python                    
Python 3.9.9 (main, Nov 30 2021, 12:08:08) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "~/.pyenv/versions/3.9.9/lib/python3.9/site-packages/onnx/__init__.py", line 10, in <module>
    from .onnx_cpp2py_export import ONNX_ML
ImportError: dlopen(~/.pyenv/versions/3.9.9/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so, 0x0002): tried: '~/.pyenv/versions/3.9.9/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file), '/usr/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file)
>>> 

@Fohlen
Copy link

Fohlen commented Nov 30, 2021

@Fohlen same issue. Can you check the Python binary is Mach-O 64-bit executable arm64. There are only x86_64.whl so ideally a) an arm64 or universal wheel should be made available or b) fall back to build from source for arm64 or c) print an error.

~: brew install pyenv
[...]
######################################################################## 100.0%
==> Pouring pyenv--2.2.2.arm64_monterey.bottle.tar.gz
🍺  /opt/homebrew/Cellar/pyenv/2.2.2: 834 files, 2.8MB
==> Running `brew cleanup pyenv`...
[...]
~: pyenv install 3.9.9
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.9.tar.xz...
-> https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz
Installing Python-3.9.9...
python-build: use tcl-tk from homebrew
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.9 to ~/.pyenv/versions/3.9.9
~: file ~/.pyenv/versions/3.9.9/bin/python
~/.pyenv/versions/3.9.9/bin/python: Mach-O 64-bit executable arm64
~: ~/.pyenv/versions/3.9.9/bin/python -m pip install --pre -i https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy 
Looking in indexes: https://pypi.anaconda.org/scipy-wheels-nightly/simple
Collecting numpy
  Downloading https://pypi.anaconda.org/scipy-wheels-nightly/simple/numpy/1.23.0.dev0%2B73.g657e6a583/numpy-1.23.0.dev0%2B73.g657e6a583-cp39-cp39-macosx_11_0_arm64.whl (12.8 MB)
     |████████████████████████████████| 12.8 MB 922 kB/s 
Installing collected packages: numpy
Successfully installed numpy-1.23.0.dev0+73.g657e6a583
~: ~/.pyenv/versions/3.9.9/bin/python -m pip install onnx                                                                
Collecting onnx
  Using cached onnx-1.10.2-cp39-cp39-macosx_12_0_arm64.whl
Requirement already satisfied: numpy>=1.16.6 in ./.pyenv/versions/3.9.9/lib/python3.9/site-packages (from onnx) (1.23.0.dev0+73.g657e6a583)
Collecting protobuf
  Using cached protobuf-3.19.1-py2.py3-none-any.whl (162 kB)
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting typing-extensions>=3.6.2.1
  Downloading typing_extensions-4.0.0-py3-none-any.whl (22 kB)
Installing collected packages: typing-extensions, six, protobuf, onnx
Successfully installed onnx-1.10.2 protobuf-3.19.1 six-1.16.0 typing-extensions-4.0.0
WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '~/.pyenv/versions/3.9.9/bin/python -m pip install --upgrade pip' command.
~: ~/.pyenv/versions/3.9.9/bin/python                    
Python 3.9.9 (main, Nov 30 2021, 12:08:08) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "~/.pyenv/versions/3.9.9/lib/python3.9/site-packages/onnx/__init__.py", line 10, in <module>
    from .onnx_cpp2py_export import ONNX_ML
ImportError: dlopen(~/.pyenv/versions/3.9.9/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so, 0x0002): tried: '~/.pyenv/versions/3.9.9/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file), '/usr/lib/onnx_cpp2py_export.cpython-39-darwin.so' (no such file)
>>> 

This is getting more and more strange, because:

Python 3.9.7 (default, Nov  1 2021, 15:38:51)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
>>> import platform
>>> platform.architecture()
('64bit', '')
>>> platform.processor()
'arm'
>>>
file /Users/lennardberger/.pyenv/versions/3.9.7/envs/data-exploration/lib/python3.9/site-packages/onnx/onnx_cpp2py_export.cpython-39-darwin.so: Mach-O 64-bit bundle arm64

So I have a working installation of onnx.
However looking at PyPi, there indeed seems to be no arm64 release.

@Fohlen
Copy link

Fohlen commented Nov 30, 2021

@lutzroeder I found the following wheel in my cache:
onnx-1.10.2-cp39-cp39-macosx_12_0_arm64.whl.zip

I double-checked if at some point I compiled and installed the wheel myself, but I did not. Let's dig into where my PyPi got that wheel from.

@Fohlen
Copy link

Fohlen commented Nov 30, 2021

Okay @lutzroeder the wheel is actually built from source. Please try the following:

pip3 install cython
pip install --force-reinstall --no-cache-dir onnx

Your prompt should look a little something like this:

Collecting onnx
  Downloading onnx-1.10.2.tar.gz (9.9 MB)
     |████████████████████████████████| 9.9 MB 214 kB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
    Preparing wheel metadata ... done
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting numpy>=1.16.6
  Downloading numpy-1.21.4-cp39-cp39-macosx_11_0_arm64.whl (12.4 MB)
     |████████████████████████████████| 12.4 MB 5.3 MB/s
Collecting typing-extensions>=3.6.2.1
  Downloading typing_extensions-4.0.0-py3-none-any.whl (22 kB)
Collecting protobuf
  Downloading protobuf-3.19.1-py2.py3-none-any.whl (162 kB)
     |████████████████████████████████| 162 kB 6.7 MB/s
Building wheels for collected packages: onnx
  Building wheel for onnx (PEP 517) ... done
  Created wheel for onnx: filename=onnx-1.10.2-cp39-cp39-macosx_12_0_arm64.whl size=11509795 sha256=ce93127b18ce2688718439c744b572316eea409459ea9b37a5bd1bb08daf8dcb
  Stored in directory: /private/var/folders/k0/7td98nx56kn5y9d21wm1rrk40000gn/T/pip-ephem-wheel-cache-mek0q7r4/wheels/16/fe/be/e7e520c0bbd303f36bdfeffa412a639c1397d81ea051bf4570
Successfully built onnx
Installing collected packages: typing-extensions, six, protobuf, numpy, onnx
  Attempting uninstall: typing-extensions
    Found existing installation: typing-extensions 4.0.0
    Uninstalling typing-extensions-4.0.0:
      Successfully uninstalled typing-extensions-4.0.0
  Attempting uninstall: six
    Found existing installation: six 1.16.0
    Uninstalling six-1.16.0:
      Successfully uninstalled six-1.16.0
  Attempting uninstall: protobuf
    Found existing installation: protobuf 3.19.1
    Uninstalling protobuf-3.19.1:
      Successfully uninstalled protobuf-3.19.1
  Attempting uninstall: numpy
    Found existing installation: numpy 1.21.4
    Uninstalling numpy-1.21.4:
      Successfully uninstalled numpy-1.21.4
  Attempting uninstall: onnx
    Found existing installation: onnx 1.10.2
    Uninstalling onnx-1.10.2:
      Successfully uninstalled onnx-1.10.2
Successfully installed numpy-1.21.4 onnx-1.10.2 protobuf-3.19.1 six-1.16.0 typing-extensions-4.0.0
WARNING: You are using pip version 21.2.3; however, version 21.3.1 is available.
You should consider upgrading via the '/Users/lennardberger/.pyenv/versions/3.9.7/envs/test/bin/python3.9 -m pip install --upgrade pip' command.
(test) lennardberger@MacBook-Pro-von-Lennard PyCharmProjects % python3
Python 3.9.7 (default, Nov  1 2021, 15:38:51)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
>>>

If that still does not yield any results try installing with:

pip install --force-reinstall --no-cache-dir --no-use-pep517 onnx

This will force-build the wheel from source using the legacy build system.

@lutzroeder
Copy link
Member Author

lutzroeder commented Nov 30, 2021

@Fohlen first option shows the same error, second option a build error. For context, the issue here isn't to find a workaround. It is understood that build from source in a virtual environment works. This issue is tracking "regular" pip install onnx leading to errors with Python arm64.

@Fohlen
Copy link

Fohlen commented Dec 1, 2021

Well in my environment it doesn't, as from the pip log you can see that out of the box it builds an arm with PEP 517. This is the expected and correct behaviour, in case the wheel offers a build from source option. It is also the correct approach to packaging, since it's unrealistic to expect that every project could easily add an M1 to their build pipeline.

@lutzroeder
Copy link
Member Author

lutzroeder commented Dec 1, 2021

@Fohlen first option shows the same error, second option a build error

The error when running pip install --force-reinstall --no-cache-dir --no-use-pep517 onnx seems to be related to protocolbuffers/protobuf#9180. Pip upgrades to protobuf==3.19.1 which result in the AttributeError. Downgrading to protobuf==3.17.0 does not show the error.

~: pip install --force-reinstall --no-cache-dir --no-use-pep517 onnx
[...]
Collecting onnx
  Downloading onnx-1.10.2.tar.gz (9.9 MB)
     |████████████████████████████████| 9.9 MB 998 kB/s            
  Preparing metadata (setup.py) ... done
Collecting protobuf
  Downloading protobuf-3.19.1-py2.py3-none-any.whl (162 kB)
     |████████████████████████████████| 162 kB 8.7 MB/s            
[...]
Successfully installed numpy-1.21.4 onnx-1.10.2 protobuf-3.19.1 six-1.16.0 typing-extensions-4.0.1
~: python
Python 3.9.9 (main, Nov 21 2021, 03:16:13) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/__init__.py", line 11, in <module>
    from onnx.external_data_helper import load_external_data_for_model, write_external_data_tensors, convert_model_to_external_data
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/external_data_helper.py", line 14, in <module>
    from .onnx_pb import TensorProto, ModelProto
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_pb.py", line 8, in <module>
    from .onnx_ml_pb2 import *  # noqa
  File "/opt/homebrew/lib/python3.9/site-packages/onnx/onnx_ml_pb2.py", line 6, in <module>
    from google.protobuf import descriptor as _descriptor
  File "/opt/homebrew/lib/python3.9/site-packages/google/protobuf/descriptor.py", line 47, in <module>
    from google.protobuf.pyext import _message
AttributeError: module 'google.protobuf.internal.containers' has no attribute 'MutableMapping'
~: pip uninstall protobuf
[...]
  Successfully uninstalled protobuf-3.19.1
~: pip install protobuf==3.17.0 
Collecting protobuf==3.17.0
[...]
Successfully installed protobuf-3.17.0
~: python
Python 3.9.9 (main, Nov 21 2021, 03:16:13) 
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import onnx
>>> 

lutzroeder added a commit to lutzroeder/netron that referenced this issue Dec 2, 2021
@Bresenham
Copy link

Hello,

I need onnxruntime to finish an assignment, unfortunately after installing protobuf:

% pip3 install 'protobuf==3.17.0'
Collecting protobuf==3.17.0
  Downloading protobuf-3.17.0-py2.py3-none-any.whl (173 kB)
     |████████████████████████████████| 173 kB 1.0 MB/s            
Collecting six>=1.9
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, protobuf
Successfully installed protobuf-3.17.0 six-1.16.0

I get this error:

% pip3 install --force-reinstall --no-cache-dir --no-use-pep517 onnx
Collecting onnx
  Downloading onnx-1.10.2.tar.gz (9.9 MB)
     |████████████████████████████████| 9.9 MB 1.2 MB/s            
  Preparing metadata (setup.py) ... done
Collecting numpy>=1.16.6
  Downloading numpy-1.21.5-cp39-cp39-macosx_11_0_arm64.whl (12.4 MB)
     |████████████████████████████████| 12.4 MB 1.1 MB/s            
Collecting protobuf
  Downloading protobuf-3.19.1-py2.py3-none-any.whl (162 kB)
     |████████████████████████████████| 162 kB 1.0 MB/s            
Collecting six
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting typing-extensions>=3.6.2.1
  Downloading typing_extensions-4.0.1-py3-none-any.whl (22 kB)
Using legacy 'setup.py install' for onnx, since package 'wheel' is not installed.
Installing collected packages: typing-extensions, six, protobuf, numpy, onnx
  Attempting uninstall: typing-extensions
    Found existing installation: typing-extensions 4.0.1
    Uninstalling typing-extensions-4.0.1:
      Successfully uninstalled typing-extensions-4.0.1
  Attempting uninstall: six
    Found existing installation: six 1.16.0
    Uninstalling six-1.16.0:
      Successfully uninstalled six-1.16.0
  Attempting uninstall: protobuf
    Found existing installation: protobuf 3.19.1
    Uninstalling protobuf-3.19.1:
      Successfully uninstalled protobuf-3.19.1
  Attempting uninstall: numpy
    Found existing installation: numpy 1.21.5
    Uninstalling numpy-1.21.5:
      Successfully uninstalled numpy-1.21.5
    Running setup.py install for onnx ... error
    ERROR: Command errored out with exit status 1:
     command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py'"'"'; __file__='"'"'/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-record-ne2tckit/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/onnx
         cwd: /private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/
    Complete output (73 lines):
    fatal: not a git repository (or any of the parent directories): .git
    /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'license-file' will not be supported in future versions. Please use the underscore name 'license_file' instead
      warnings.warn(
    WARNING: The wheel package is not available.
    /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools/dist.py:717: UserWarning: Usage of dash-separated 'license-file' will not be supported in future versions. Please use the underscore name 'license_file' instead
      warnings.warn(
    running install
    running build
    running build_py
    running create_version
    running cmake_build
    Using cmake args: ['/opt/homebrew/bin/cmake', '-DPYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9', '-DPYTHON_EXECUTABLE=/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9', '-DBUILD_ONNX_PYTHON=ON', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cpython-39-darwin.so', '-DCMAKE_BUILD_TYPE=Release', '-DONNX_ML=1', '/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898']
    -- The C compiler identification is AppleClang 13.0.0.13000029
    -- The CXX compiler identification is AppleClang 13.0.0.13000029
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found PythonInterp: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 (found version "3.9.9")
    -- Found PythonLibs: /Library/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib (found version "3.9.9")
    Generated: /private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/.setuptools-cmake-build/onnx/onnx-ml.proto
    CMake Error at CMakeLists.txt:295 (message):
      Protobuf compiler not found
    Call Stack (most recent call first):
      CMakeLists.txt:326 (relative_protobuf_generate_cpp)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/.setuptools-cmake-build/CMakeFiles/CMakeOutput.log".
    See also "/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/.setuptools-cmake-build/CMakeFiles/CMakeError.log".
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py", line 339, in <module>
        setuptools.setup(
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/command/install.py", line 546, in run
        self.run_command('build')
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py", line 233, in run
        self.run_command('cmake_build')
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py", line 219, in run
        subprocess.check_call(cmake_args)
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 373, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/opt/homebrew/bin/cmake', '-DPYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9', '-DPYTHON_EXECUTABLE=/Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9', '-DBUILD_ONNX_PYTHON=ON', '-DCMAKE_EXPORT_COMPILE_COMMANDS=ON', '-DONNX_NAMESPACE=onnx', '-DPY_EXT_SUFFIX=.cpython-39-darwin.so', '-DCMAKE_BUILD_TYPE=Release', '-DONNX_ML=1', '/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py'"'"'; __file__='"'"'/private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-install-4c20jpq7/onnx_de622a350d764a8586e84f2397582898/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/_m/9cs9bslx61x_wl23rz25wl700000gn/T/pip-record-ne2tckit/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/onnx Check the logs for full command output.

can someone help me out with this?

Is it possible at the moment to get onnxruntime running on M1 Macs?

@Fohlen
Copy link

Fohlen commented Dec 24, 2021

@Bresenham try:

pip3 install cython
pip3 install --force-reinstall --no-cache-dir --no-use-pep517 onnx

@Bresenham
Copy link

Bresenham commented Dec 24, 2021

@Fohlen Thank you, but same problem.

I guess the problem is Protobuf compiler not found?

Is it enough to brew install protobuf-c?

Edit: Okay, after brew install protobuf-c this worked and import onyx also works - but how do I get onnxruntime?

@JannisWolf
Copy link

Maybe a bit late but in case someone stumbles over this thread:

In a Miniforge Arm environment set up with the instructions from Apple to install Tensorflow, I have installed onnx using
conda install onnx and onnxruntime using brew brew install onnxruntime . Maybe there is a cleaner way but it works for me like that.

@willcmartin
Copy link

Maybe a bit late but in case someone stumbles over this thread:

In a Miniforge Arm environment set up with the instructions from Apple to install Tensorflow, I have installed onnx using conda install onnx and onnxruntime using brew brew install onnxruntime . Maybe there is a cleaner way but it works for me like that.

conda install onnxruntime seems to be working now as well.

@lawrencekiba
Copy link

Some users will need:

  brew install cmake
  brew install protobuf
  pip3 install onnx --no-use-pep517

I found 1.10.1 works for me but not 1.8.1

In a similar manner i found 1.12.0 works for me

junmini7 added a commit to junmini7/stable-diffusion-webui that referenced this issue Oct 12, 2022
pip install onnx doesn't work in some M1 silicon Mac, and installing it with conda is supposed to be a solution
onnx/onnx#3129
IDK but it is somehow related with protobuf version too
onnx/onnx#4475
junmini7 added a commit to junmini7/stable-diffusion-webui that referenced this issue Oct 12, 2022
There's an issue that onnx, dependency of invisible-watermark, is not properly installed on the M1 silicons.
And it is still opened    onnx/onnx#3129  
Therefore we should install onnx with conda instead of pip in prior to installing with pip.
Otherwise other dependencies would be skipped without being installed.
@iantimmis
Copy link

Seriously haven't fixed this yet?

@apatsekin
Copy link

apatsekin commented Nov 23, 2022

For me it was:

brew install cmake
brew install protobuf
brew link --overwrite protobuf
pip3 install onnx

Works for 1.12.0.

$ python3 --version
Python 3.10.6
$ which python3
/opt/homebrew/bin/python

@chris-twosense
Copy link

@apetsekin what version of python are you using?

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

No branches or pull requests