已安装numpy仍遇lap安装报错:ModuleNotFoundError问题求助
解决lap安装时提示找不到numpy的问题
问题重现
- 创建Python3虚拟环境:
python3 -m venv .venv - 激活虚拟环境:
source .venv/bin/activate - 安装numpy模块:
python3 -m pip install numpy - 尝试安装lap模块:
python3 -m pip install lap,此时报错ModuleNotFoundError: No module named 'numpy'及ImportError: lap requires numpy, please "pip install numpy"
更新测试
使用新虚拟环境.venv2重复操作,直接安装lap时仍出现相同错误,具体报错信息:
vbulash@vbulash-notebook:~/VSCode/recognition$ python3 -m venv .venv2 vbulash@vbulash-notebook:~/VSCode/recognition$ source .venv2/bin/activate (.venv2) vbulash@vbulash-notebook:~/VSCode/recognition$ python3 -m pip install lap Collecting lap Using cached lap-0.4.0.tar.gz (1.5 MB) Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error × Preparing metadata (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [23 lines of output] <string>:4: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html Partial import of lap during the build process. Traceback (most recent call last): File "<string>", line 127, in get_numpy_status ModuleNotFoundError: No module named 'numpy' Traceback (most recent call last): File "/home/vbulash/VSCode/recognition/.venv2/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module> main() File "/home/vbulash/VSCode/recognition/.venv2/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/vbulash/VSCode/recognition/.venv2/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel return hook(metadata_directory, config_settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-1zmi7bid/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 366, in prepare_metadata_for_build_wheel self.run_setup() File "/tmp/pip-build-env-1zmi7bid/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 487, in run_setup super().run_setup(setup_script=setup_script) File "/tmp/pip-build-env-1zmi7bid/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup exec(code, locals()) File "<string>", line 236, in <module> File "<string>", line 220, in setup_package ImportError: lap requires numpy, please "pip install numpy". [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed × Encountered error while generating package metadata. ╰─> See above for output.
原因分析
lap包在构建元数据(metadata)阶段就需要依赖numpy,但pip默认启用构建隔离机制,会创建临时的隔离环境来构建包,该环境不会包含你已在虚拟环境中安装的numpy,因此即使提前安装了numpy,构建lap时仍会提示找不到依赖。
解决方案
关闭pip的构建隔离,让构建过程直接使用当前虚拟环境的依赖:
- 激活虚拟环境后,先安装numpy:
python3 -m pip install numpy - 接着使用
--no-build-isolation参数安装lap:python3 -m pip install lap --no-build-isolation
内容的提问来源于stack exchange,提问作者vbulash
相关产品推荐
相关产品推荐

