You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

python:3.7-alpine镜像升级pip遇[Errno39]目录非空错误如何解决?

在python:3.7-alpine中升级pip规避[Errno 39]目录非空错误的方法

遇到的问题很明确:用python:3.7-alpine镜像时,执行官方推荐的pip升级命令/usr/local/bin/python -m pip install --upgrade pip会触发[Errno 39] Directory not empty: 'urllib3'错误,下面是几种可行的解决办法:

方法一:升级时跳过已安装的urllib3

直接在升级命令后添加--ignore-installed urllib3参数,强制pip忽略已存在的urllib3目录,避免冲突:

/usr/local/bin/python -m pip install --upgrade pip --ignore-installed urllib3

方法二:先卸载urllib3再升级pip

既然冲突根源是urllib3目录非空,先彻底卸载旧版本再升级:

/usr/local/bin/python -m pip uninstall -y urllib3
/usr/local/bin/python -m pip install --upgrade pip

方法三:Dockerfile中集成处理(如果是构建镜像场景)

如果是在Dockerfile里做镜像构建,直接把上述命令写入即可:

# 方式一:带参数直接升级
RUN /usr/local/bin/python -m pip install --upgrade pip --ignore-installed urllib3

# 方式二:先卸载再升级
RUN /usr/local/bin/python -m pip uninstall -y urllib3
RUN /usr/local/bin/python -m pip install --upgrade pip

问题原因

这个错误是因为python:3.7-alpine镜像预装的urllib3目录结构,和pip升级过程中要部署的新版本urllib3存在目录占用冲突,pip无法自动清理非空目录,所以通过跳过已安装项或提前卸载就能解决。

内容的提问来源于stack exchange,提问作者Evan Carroll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:57:19