一. ubuntu 安装numpy open3d
你是想在 Ubuntu 上 装 numpy ,同时还要 open3d (而且你提到"open3d open/一开就用/直接装好"这种意思),我建议走虚拟环境路线,成功率最高、也不污染系统 Python。
下面给你一套"一次装好 + 验证"的命令(从创建环境到测试)。
1)创建并进入虚拟环境
sudo apt update
sudo apt install -y python3 python3-pip python3-venv
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip setuptools wheel
2)安装 numpy 和 open3d
pip install numpy open3d
3)验证是否安装成功
python -c "import numpy as np; print('numpy:', np.__version__)"
python -c "import open3d as o3d; print('open3d:', o3d.__version__)"
二. Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 1, in IOError: [Errno 2] No such file or directory: '/tmp/pip-build-QlCbFd/Send2Trash/setup.py 这个错误怎么处理
这个报错本质是:你在安装某个依赖包时(Send2Trash 这个包),pip 试图在临时构建目录里找到 Send2Trash/setup.py,但发现文件不在了(常见原因:下载/解包不完整、缓存损坏、权限/临时目录问题、或包源异常)。
你按下面顺序排查,基本都能解决(每一步做完就再试安装一次):
1)先换到虚拟环境(如果你没用的话强烈建议)
在你的项目目录下:
python3 -m venv venv
source venv/bin/activate
pip install -U pip setuptools wheel
2)清理 pip 缓存并强制重新下载
pip cache purge
pip install --no-cache-dir -U pip setuptools wheel
然后再执行你原本的安装命令(例如装 open3d / numpy 或者你正在装的那个包):
pip install --no-cache-dir <你的包名>
3)检查 pip/网络来源是否异常(用官方源重试)
pip install --no-cache-dir --index-url https://pypi.org/simple <你的包名>
4)确认你没有把包名/路径搞错
报错里出现了类似:
/tmp/pip-build-.../Send2Trash/setup.py
说明 pip 解包后应该有 setup.py。如果你是从本地源码安装(例如 pip install ./Send2Trash),请确认:
- 你当前目录下真的有
Send2Trash源码目录 - 里面确实有
setup.py或者pyproject.toml
5)把"下一次安装需要的核心依赖"先装好再装目标包
bashpip install --no-cache-dir -U setuptools wheel
pip install --no-cache-dir open3d
三. 激活 Python 虚拟环境并在虚拟环境里运行程序"的最常用做法(以 venv 为例)。
1) 安装 venv 依赖(只需要一次)
有些系统可能没有自带 venv 模块,先装一下:
sudo apt update
sudo apt install -y python3-venv
2) 进入项目目录并创建虚拟环境
假设你的项目在当前目录(你也可以先 cd 到你的项目路径):
mkdir -p myproject
cd myproject
python3 -m venv .venv
创建完成后,虚拟环境目录通常在:./.venv/
3) 激活虚拟环境
source .venv/bin/activate
激活成功后,你的命令行最前面一般会出现类似 (.venv) 的前缀。
验证一下当前用的是虚拟环境的 Python:
which python
python -V
4) 在虚拟环境里安装依赖
例如你之前遇到过 pip 安装问题,可以先升级工具再装:
python -m pip install --upgrade pip setuptools wheel
然后安装你需要的包(示例):
pip install numpy open3d
你也可以用
python -m pip ...,避免 pip 指到别的 Python。
5) 在虚拟环境里运行程序
比如你的脚本叫 main.py:
python main.py
或者如果你用的是 requirements:
pip install -r requirements.txt
python main.py
6) 退出虚拟环境
deactivate
四. venv) hal18@ubuntu:~/Downloads/3D-Point-Cloud-Analytics-master/workspace/assignments/01-introduction source venv/bin/activate (venv) hal18@ubuntu:\~/Downloads/3D-Point-Cloud-Analytics-master/workspace/assignments/01-introduction python3.6 00_off_to_ply.py Traceback (most recent call last): File "00_off_to_ply.py", line 8, in import numpy as np ModuleNotFoundError: No module named 'numpy' 但是我已经装了numpy
你这个报错说明:当前这个虚拟环境(venv)里没有 numpy 。
"我已经装了 numpy"很可能是你把 numpy 装在系统 Python 或另一个环境 里了,但你现在运行用的是当前目录下这个 venv 的 Python。
在虚拟环境里,把下面 3 条命令都执行一下,把输出发我(不用截图也行,直接复制粘贴):
which python
python -V
python -c "import sys; print(sys.executable); import numpy; print('numpy ok', numpy.__version__)"
另外,你也可以直接检查 pip 指向的是不是虚拟环境里的 pip:
python -m pip -V
临时解决(通常一条命令就好)
在 (venv) 环境里先重装 numpy(装到当前 venv):
bashpython -m pip install -U pip setuptools wheel
python -m pip install numpy
装完再运行:
python3.6 00_off_to_ply.py
注意:你现在命令是
python3.6 ...,但你的环境激活后一般用的是python。如果系统里python3.6不是 venv 里的那个解释器,就还会找不到 numpy。等你把上面which python / sys.executable / pip -V的输出发我,我就能准确判断该用python还是python3.6来跑。
五. pip install --no-cache-dir 这里--no-cache-dir的含义是什么?
pip install --no-cache-dir 里的 --no-cache-dir 表示:
- 不使用/不写入 pip 的缓存目录(pip 通常会把下载到的包缓存起来以便下次更快安装)
- 安装时会直接下载并立刻使用,不保留缓存
常见影响:
- 优点:避免用到旧缓存导致的异常;在某些环境里能减少缓存带来的磁盘问题。
- 缺点 :可能会变慢一些(因为下次安装不会复用缓存),同时网络/下载开销会更明显。