从本地仓库安装pwntools失败问题求助
解决本地安装pwntools-dev时setuptools版本检测异常问题
核心问题原因
你本地已安装满足版本要求的setuptools(52.0.0 >=44.0),但pip在安装pwntools时会创建隔离构建环境,尝试下载适配Python3.8的setuptools版本,而企业防火墙阻断了下载请求,导致安装失败。以下是几种可行的解决办法:
方法1:禁用构建隔离(最直接)
使用--no-build-isolation参数,强制pip使用当前环境已安装的依赖,跳过隔离环境的依赖下载步骤:
pip install --upgrade --editable ./pwntools --no-build-isolation
这个参数会让pip直接复用你本地的setuptools 52.0.0版本,避免触发外部下载请求,绕过防火墙限制。
方法2:手动指定本地setuptools路径
如果方法1无效,可以让pip明确指向你已安装的setuptools位置:
- 先获取setuptools的安装路径:
pip show setuptools
输出中找到Location字段,比如/home/david/.local/lib/python3.9/site-packages
- 安装时通过
--find-links参数指定该路径:
pip install --upgrade --editable ./pwntools --find-links=/home/david/.local/lib/python3.9/site-packages
这样pip会优先从本地路径查找满足要求的setuptools,而不会去PyPI下载。
方法3:修改pwntools的构建依赖声明
如果前两种方法都无法解决,可以修改pwntools仓库内的pyproject.toml文件,明确依赖范围:
- 进入pwntools仓库目录,编辑
pyproject.toml - 找到
[build-system]部分,修改requires字段中的setuptools声明,确保和本地版本匹配:
[build-system] requires = ["setuptools>=44.0", "wheel"]
(如果原本有更严格的版本限制,比如指定了Python版本关联的约束,可以删除或调整)
- 保存文件后重新执行安装命令:
pip install --upgrade --editable ./pwntools
内容的提问来源于stack exchange,提问作者David Shaw
相关产品推荐
相关产品推荐

