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

Docker中执行pip安装依赖文件报错,寻求解决方法

解决Docker构建时pip访问PyPI超时及无法找到包的问题

你的问题本质是Docker容器构建过程中网络访问PyPI受限,导致无法拉取包信息,最终报错"找不到fastapi==0.110.0版本"(实际并非版本不存在,而是网络问题导致未获取到版本列表)。以下是几种可行的解决方法:

方法1:更换国内PyPI镜像源

国内镜像源访问速度更快,能避免超时问题。可以直接在pip命令中指定源,或者配置全局pip源:

方式A:命令行临时指定源

修改Dockerfile中的pip安装命令,添加国内镜像源地址:

RUN pip install --upgrade pip
RUN pip install --no-cache-dir --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple -r /code/requirements.txt

常用国内镜像源还有:

  • 阿里云:https://mirrors.aliyun.com/pypi/simple/
  • 豆瓣:https://pypi.douban.com/simple/

方式B:配置全局pip源

在Dockerfile中添加全局pip配置,后续所有pip命令都会自动使用该源:

FROM python:3.11

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# 配置国内PyPI源
RUN mkdir -p /root/.pip \
    && echo "[global]" > /root/.pip/pip.conf \
    && echo "index-url = https://pypi.tuna.tsinghua.edu.cn/simple" >> /root/.pip/pip.conf

WORKDIR /code/src

COPY ./requirements.txt /code/requirements.txt

RUN pip install --upgrade pip
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt

COPY ./ /code/src
ENV PYTHONPATH /code/src

RUN chmod a+x run.sh
CMD ["./run.sh"]

方法2:使用宿主机网络构建镜像

Docker默认使用bridge网络,可能存在网络限制。构建时指定使用宿主机网络,和外部环境一致:

docker build --network host -t your-image-name .

方法3:延长pip超时时间

增加pip的超时阈值,给足够时间完成包的拉取:

RUN pip install --no-cache-dir --upgrade --default-timeout=100 -r /code/requirements.txt

方法4:修复Docker DNS解析问题

如果是DNS解析失败导致无法访问PyPI,可以修改Docker守护进程的DNS配置:

  1. 编辑/etc/docker/daemon.json(若不存在则创建):
{
  "dns": ["8.8.8.8", "114.114.114.114"]
}
  1. 重启Docker服务:
sudo systemctl restart docker
  1. 重新执行镜像构建命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:21:06