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

Cannot install Open3D 0.17.0 on MacOS 12 ARM #6015

Closed
3 tasks done
johnthagen opened this issue Mar 20, 2023 · 11 comments
Closed
3 tasks done

Cannot install Open3D 0.17.0 on MacOS 12 ARM #6015

johnthagen opened this issue Mar 20, 2023 · 11 comments
Labels
build/install Build or installation issue

Comments

@johnthagen
Copy link
Contributor

johnthagen commented Mar 20, 2023

Checklist

Steps to reproduce the issue

Install Open3D using pip

Within a virtual environment:

$ python3 -m pip install open3d==0.17.0
ERROR: Could not find a version that satisfies the requirement open3d==0.17.0 (from versions: 0.16.0, 0.16.1)
ERROR: No matching distribution found for open3d==0.17.0

On an MacOS 12 ARM64 machine.

This is due to the the 3.10 ARM Mac wheel only being compiled for MacOS 13:

open3d-0.17.0-cp310-cp310-macosx_13_0_arm64.whl

If you inspect the other ARM Mac wheels, they are all correctlymacosx_12, so they install under MacOS 12. MacOS 12 is still supported and installed widely.

  • open3d-0.17.0-cp39-cp39-macosx_12_0_arm64.whl
  • open3d-0.17.0-cp38-cp38-macosx_12_0_arm64.whl

We would request that a new Python 3.10 wheel be uploaded that targets MacOS 12.

Open3D, Python and System information

- Operating system: macOS 12.6.3
- Python version: Python 3.10
- Open3D version: output from python: 0.17.0
- System architecture: arm64
- Is this a remote workstation?: no
- How did you install Open3D?: pip
- Compiler version (if built from source): N/A
@johnthagen johnthagen added the build/install Build or installation issue label Mar 20, 2023
@errissa
Copy link
Collaborator

errissa commented Mar 20, 2023

@johnthagen Thank you for pointing this out. Would you please confirm that this wheel works for you in Python3.10 on MacOS 12?

https://github.com/isl-org/Open3D/releases/download/v0.17.0/open3d-0.17.0-cp310-cp310-macosx_12_0_arm64.whl

@johnthagen
Copy link
Contributor Author

@errissa Thanks!

We tested the wheel above and confirmed that it installed correctly. Could you please upload this to PyPI for the 0.17.0 release?

@errissa
Copy link
Collaborator

errissa commented Mar 21, 2023

@johnthagen Yes, we will be uploading the updated wheel to PyPI today.

@errissa
Copy link
Collaborator

errissa commented Mar 21, 2023

@johnthagen Unless you've already verified that the wheel works for you (i.e., not just installs correctly), would please do a basic sanity check and run the following script. We don't currently have access to an Apple Silicon system running MacOS 12.

import open3d as o3d
d = o3d.data.MonkeyModel()
m = o3d.t.io.read_triangle_mesh(d.path)
o3d.visualization.draw(m)

You should get something like this:
2023-03-21-114548_1024x768_scrot

@johnthagen
Copy link
Contributor Author

@errissa We just tested it out on a MacOS 12 machine and it worked great!

@errissa
Copy link
Collaborator

errissa commented Mar 21, 2023

Thank you! We'll upload the wheel shortly.

@errissa errissa closed this as completed Mar 21, 2023
@ssheorey
Copy link
Member

Uploaded to PYPI. You can pip install open3d==0.17.0 now.

@johnthagen
Copy link
Contributor Author

johnthagen commented Mar 21, 2023

@errissa @ssheorey Something about the latest update to PyPI broken Poetry locking for the project:

The follow packages are no longer detected as dependencies by Poetry:

  • Removing addict (2.4.0)
  • Removing joblib (1.2.0)
  • Removing pandas (1.5.3)
  • Removing pyquaternion (0.9.9)
  • Removing scikit-learn (1.2.2)
  • Removing scipy (1.10.1)
  • Removing threadpoolctl (3.1.0)
  • Removing tqdm (4.65.0)
Traceback (most recent call last):
    import open3d as o3d
  File "TUB9piUY-py3.10/lib/python3.10/site-packages/open3d/__init__.py", line 146, in <module>
    import open3d.ml
  File "TUB9piUY-py3.10/lib/python3.10/site-packages/open3d/ml/__init__.py", line 16, in <module>
    from . import datasets
  File "TUB9piUY-py3.10/lib/python3.10/site-packages/open3d/ml/datasets.py", line 15, in <module>
    from open3d._ml3d.datasets import *
  File "TUB9piUY-py3.10/lib/python3.10/site-packages/open3d/_ml3d/datasets/__init__.py", line 3, in <module>
    from .semantickitti import SemanticKITTI
  File "TUB9piUY-py3.10/lib/python3.10/site-packages/open3d/_ml3d/datasets/semantickitti.py", line 6, in <module>
    from sklearn.neighbors import KDTree
ModuleNotFoundError: No module named 'sklearn'

I believe this is related to how the wheels are uploaded and then how the JSON API is updated based on the "first" wheel that is uploaded. Some discussion here

@johnthagen
Copy link
Contributor Author

johnthagen commented Mar 21, 2023

If you look at https://pypi.org/pypi/open3d/0.17.0/json

You'll notice:

        "requires_dist": [
            "numpy (>=1.18.0)",
            "dash (>=2.6.0)",
            "werkzeug (>=2.2.3)",
            "nbformat (==5.7.0)",
            "configargparse"
        ],

Which is missing the following requirements from the MacOS wheel:

Requires-Dist: addict
Requires-Dist: pillow (>=9.3.0)
Requires-Dist: matplotlib (>=3)
Requires-Dist: numpy (>1.15)
Requires-Dist: pandas (>=1.0)
Requires-Dist: pyyaml (>=5.4.1)
Requires-Dist: scikit-learn (>=0.21)
Requires-Dist: tqdm
Requires-Dist: pyquaternion

@johnthagen
Copy link
Contributor Author

(Side note these PRs would likely help with this overall situation)

@johnthagen
Copy link
Contributor Author

Related issue where this happened for 0.16.1:

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

3 participants