Win10 Python3.8运行Open3D代码报错module 'open3d' has no attribute 'PointCloud'
问题根因
Open3D v0.13.0及以上版本对API做了分层重构,原顶级命名空间下的PointCloud、Vector3dVector等类均移动到了子模块下,原有直接调用o3d.PointCloud()的写法已经失效。
修复方案
将代码中对应类的调用路径修改为子模块路径即可,修改后的可运行代码如下:
import open3d as o3d import numpy as np pc_array = np.array([[1, 2, 3], [3, 4, 5]], dtype=np.float32) print(pc_array) pc = o3d.geometry.PointCloud() pc.points = o3d.utility.Vector3dVector(pc_array) print(pc)
异常兜底排查
如果修改后仍然报错,按以下步骤检查:
- 确认安装的是官方Open3D包,在终端执行
pip list | findstr open3d检查包名和版本,若版本低于0.13.0可执行pip install -U open3d升级到最新稳定版 - 确认VSCode当前使用的Python解释器和安装Open3D的解释器一致,可点击VSCode右下角的Python版本号切换对应环境
内容的提问来源于stack exchange,提问作者Meryem Çiftçi
相关产品推荐
相关产品推荐

