M1arm Mac安装open3d
问题
说在前面:open3d对arm架构的机器支持相对比较晚,所以目前还在完善当中,我试了官方给出的两种方法安装都出现了错误:首先给出官方的安装说明:
第一种:conda环境直接使用pip安装,即如下命令:
pip install open3d
但是这种情况的大概率会出错,比较常见的两种错误,一个是因为依赖和conda的python版本问题直接报错,还有一种是安装成功了,但是import open3d的时候出现这种错误:
-
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'`
这个错误也有一些国外网友遇到过,github上有相关的问题阐述和解决,但是我试了好像不太行,给个传送门:open3d 0.16.0: arm64 conda python unable to import due to '_quadmath_snprintf' not found #5607
第二种:使用源码编译安装,最终在编译完成后出现了其他错误,这里没有记录,所以暂时没有图片参考。
解决方案
最终在官方github的问题提交分支里,我找到了一种可行的方法:
在这里:Open 3D package for Apple silicon M1 #2675
这个方法大概就是下载对应python版本的wheel文件,然后使用pip本地安装即可。
step 1:下载.whl文件,链接在Apple Silicon Experimental Wheel
因为我的conda 环境python版本为3.9,所以我下了第二个cp39的,(我才那个数字是对应的python版本吧,不知道,但我测试成功了)。
step 2:安装下载的whl文件
首先,找到你的文件下载地址,从你的终端进到这个文件夹下,如我的:
-
kongds@kongds ~$ cd Downloads
-
kongds@kongds ~/Downloads$ ls
-
open3d-0.13.0 621176cd9-cp39-cp39-macosx_11_0_arm64.whl
然后需要启动你用到的conda环境,如果你用的是pycharm,而且使用的是conda的虚拟环境,那你需要先去pycharm里面找打你配置的虚拟环境名:
如我的,就是py。你可以从终端查看一下当前的conda环境列表,相关命令如下:
第一条是查看所有的conda 虚拟环境,第二条命令是启动这个名为py的虚拟环境,可以发现前面多了个(py),这就说明启动成功了
-
kongds@kongds ~/Downloads$ conda info -e
-
# conda environments:
-
#
-
base /opt/anaconda3
-
py /opt/anaconda3/envs/py
-
-
kongds@kongds ~/Downloads$ conda activate py
-
(py) kongds@kongds ~/Downloads$
然后就是可以使用如下命令从本地whl安装了:
(py) kongds@kongds ~/Downloads$ pip install open3d-0.13.0 621176cd9-cp39-cp39-macosx_11_0_arm64.whl
因为我安装成功没有保存,所以这里没给出运行结果,一般这条就直接成功了。
这个时候你再从pycharm里面import open3d就可以显示成功了,然后有一段测试程序,你可以随便找一个点云文件来测试:
-
import open3d as o3d
-
-
print("->正在加载点云... ")
-
pcd = o3d.io.read_point_cloud("bun000.ply")
-
print(pcd)
-
o3d.visualization.draw_geometries([pcd])
给一下我的运行结果:
至此,就可以愉快地使用open3d进行点云操作了。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgcakch
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13