下载 grpcio-reflection 时 Pypi / pip 块

Pypi / pip blocks while downloading grpcio-reflection

使用 pip 安装 grpcio-reflection 需要很长时间。

奇怪的是,PyPI 中的 pip 包只有 8KB,但下载需要一分多钟,而其他几兆级的包下载速度非常快。

更新: 它不是在下载,正在进行大量编译。似乎该功能仍处于 alpha 阶段,因此该包没有像标准 grpcio

那样预编译

更新 2:重现步骤

我刚刚在这里打开了一个问题:https://github.com/grpc/grpc/issues/12992 我正在复制这里的重现步骤以完成。

似乎 grpci-reflection 包安装冻结取决于同一命令行中的其他包

这可以很容易地由这两个 docker 不同的容器复制:

Dockerfile.fast - 容器创建时间~1m 23s

#Download base ubuntu image
FROM ubuntu:16.04
RUN apt-get update && \
    apt-get -y install ca-certificates curl

# Prepare pip 
RUN apt-get -y install python-pip
RUN pip install -U pip
RUN pip install grpcio grpcio-tools
RUN pip install grpcio-reflection         # Two lines is FAST

Dockerfile.slow - 容器创建时间 5m 20s

#Download base ubuntu image
FROM ubuntu:16.04
RUN apt-get update && \
    apt-get -y install ca-certificates curl

# Prepare pip
RUN apt-get -y install python-pip
RUN pip install -U pip
RUN pip install grpcio grpcio-tools grpcio-reflection  # Single line is SLOW

计时容器构建时间:

time docker build --rm --no-cache -f Dockerfile.fast -t repro_reflbug_fast:latest .
......
real    1m22.295s
user    0m0.060s
sys     0m0.040s

time docker build --rm --no-cache -f Dockerfile.slow -t repro_reflbug_slow:latest .
.....
real    6m28.290s
user    0m0.052s
sys     0m0.052s
.....

我还没来得及调查,但第二个案例阻塞了很长时间,而第一个则没有。

事实证明,此问题在相应的 GitHub 存储库中被视为有效。现在正在这里讨论:

https://github.com/grpc/grpc/issues/12992