Mac环境下pip install -e可编辑安装报错No module named 'setuptools'
问题根因
- 新版pip默认遵循PEP 517规范,执行包构建时会创建独立的隔离构建环境,该环境不会继承当前虚拟环境中已安装的依赖,包括你已经升级到最新版的setuptools
- 你的项目没有在
pyproject.toml中显式声明构建阶段需要的依赖(setuptools、wheel),导致隔离构建环境中缺失setuptools,触发报错 - 手动执行报错命令正常、普通安装正常、Python shell可导入setuptools,都是因为这些场景下没有触发pip的隔离构建逻辑,使用的是当前虚拟环境的依赖上下文
解决方案
方案1:临时关闭构建隔离(快速验证)
执行安装命令时添加--no-build-isolation参数,强制pip使用当前虚拟环境的依赖完成构建:
pip install -e ~/Documents/MyDir/repo/mypkg --no-build-isolation
方案2:补全项目构建依赖声明(永久修复,推荐)
在项目根目录创建/修改pyproject.toml文件,添加如下构建系统配置,显式声明构建阶段需要的依赖:
[build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta"
修改完成后再执行pip install -e命令即可正常安装。
方案3:使用poetry原生安装(适配poetry环境)
从报错日志看你使用了poetry管理虚拟环境,可直接用poetry命令完成可编辑安装,无需手动调用pip:
cd ~/Documents/MyDir/repo/mypkg poetry install
内容的提问来源于stack exchange,提问作者Fonnae
相关产品推荐
相关产品推荐

