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

open3d 0.16.0: arm64 conda python unable to import due to '_quadmath_snprintf' not found #5607

Closed
3 tasks done
jbotsch-fy opened this issue Oct 21, 2022 · 13 comments
Closed
3 tasks done
Labels
build/install Build or installation issue

Comments

@jbotsch-fy
Copy link
Contributor

jbotsch-fy commented Oct 21, 2022

Checklist

Steps to reproduce the issue

This is likely the same issue as in #5482 but using a pre-built wheel

When installing open3d on a MacBook M1 arm using python 3.9 from the wheel at open3d-0.16.0-cp39-cp39-macosx_12_0_arm64.whl the following error pops up if one uses import open3D:

Error message

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/homebrew/Caskroom/miniforge/base/envs/test_env/lib/python3.9/site-packages/open3d/__init__.py", line 97, in <module>
    from open3d.cpu.pybind import (camera, data, geometry, io, pipelines,
ImportError: dlopen(/opt/homebrew/Caskroom/miniforge/base/envs/test_env/lib/python3.9/site-packages/open3d/cpu/pybind.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '_quadmath_snprintf'`

Open3D, Python and System information

- Operating system: macOS 12.3 / 
- Python version: Python 3.9.13 / output from `import sys; print(sys.version)`
- Open3D version: output from python: `print(open3d.__version__)`
- System architecture: apple-silicon
- Is this a remote workstation?: no
- How did you install Open3D?: pip open3d-0.16.0-cp39-cp39-macosx_12_0_arm64.whl

Additional information

@jbotsch-fy jbotsch-fy added the build/install Build or installation issue label Oct 21, 2022
@jbotsch-fy jbotsch-fy changed the title Summarize the issue and your environments (e.g., "Cannot compile on Ubuntu 20.04 with OpenBLAS") open3d 0.16.0: arm64 conda python unable to import due to '_quadmath_snprintf' not found Oct 21, 2022
@jbotsch-fy
Copy link
Contributor Author

jbotsch-fy commented Oct 21, 2022

This is likely the same issue as in #5482 but using a pre-built wheel

@jbotsch-fy
Copy link
Contributor Author

The PR #5613 seems to address this.

@jbotsch-fy
Copy link
Contributor Author

Not sure who is the right person to address, but e.g. @yxlao or @ssheorey would it be possible to release new builds of open3D 0.16 for apple silicon after #5613 was merged.
The current wheels are broken without #5613.

@mcdenhoed
Copy link

mcdenhoed commented Oct 31, 2022

I have also run into this issue on an M1 mac using homebrew's python, with open3d 0.16 installed via poetry.

@johnthagen
Copy link
Contributor

I'd like to second @jbotsch-fy's request that new Mac ARM wheels be uploaded for 0.16.0 as they are currently unusable because of this issue.

Thank you ❤️ !

@ianZzzzzz
Copy link

ianZzzzzz commented Nov 4, 2022

I meet this issue on py39 and py38 ,by using "pip install open3d"and install whl file.Of course on Apple M1Pro.

@connorf25
Copy link

While we wait for the new Mac ARM wheels to be uploaded, I managed to get it working by installing the previous release:
pip install open3d==0.15.1

@johnthagen
Copy link
Contributor

I managed to get it working by installing the previous release

One unfortunate trade off with using 0.15.1 is that there is no Python 3.10 support, if that's something that is important for a particular project.

@johnthagen
Copy link
Contributor

It looks like 0.16.1 was released with only Mac ARM wheels to solve this:

This does still make it tricky to pin versions, however, as a different version is needed for every other platform.

@johnthagen
Copy link
Contributor

@ssheorey Would you consider adding wheels for all other platforms to the 0.16.1 release on PyPI:

This would make it much easier for users of Open3D target multiple operating systems and architectures. Thanks.

@johnthagen
Copy link
Contributor

johnthagen commented Nov 14, 2022

Until either all missing wheels are added to 0.16.1, or the next release is published, here is a workaround snippet that can be used with Poetry to lock and install the correct wheels based on the platform:

Edit: Updated

[tool.poetry.dependencies]
open3d = [
    { version = "0.16.0", markers = "sys_platform != 'darwin'" },
    { version = "0.16.1", markers = "sys_platform == 'darwin'" },
]

@ssheorey
Copy link
Member

v0.16.1 wheels are now available for both arm64 and x86_64 for macOS only. We do not plan to release v0.16.1 wheels for other platforms, since the bug does not affect them. Thanks @johnthagen for sharing the lockfile - the platform_machine check should be skipped, since v0.16.1 is a bug fix for x86_64 as well (for a different bug). If you use a requirements.txt file instead, you can use this to lock to v0.16:

open3d==0.16.0; sys_platform != 'darwin'
open3d==0.16.1; sys_platform == 'darwin'

@johnthagen
Copy link
Contributor

I wanted to point out, for those using Poetry, using 0.16.1 for x86 Mac will lead to missing dependencies during lock/installation. See this issue for more details:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build/install Build or installation issue
Projects
None yet
Development

No branches or pull requests

6 participants