title: Why does pip (using --find-links) still collect some dependencies from the internet despite a wheel existing for it in multi-stage docker build?
body: <p>I have a multi-stage Dockerfile where I build wheels for my project's dependencies in a <code>python</code> image, then copy the wheels over to an alpine image and do a <code>pip install -r ./wheels/requirements.txt --find-links ./wheels</code>.  </p>
  
  <p>It seems to install from most wheels, except certain deps like <code>numpy</code>, <code>spacy</code>, and <code>gensim</code> where it reaches out to the internet to collect their zips/tars.  Why can't pip find the links for them? The wheels are there.  Normally it's whatever, but installing these deps on alpine takes a <em>very long time</em>.</p>
  
  <p>Here's my Dockerfile:</p>
  
  <pre><code>FROM python:3.6.10 as builder
  ENV PYTHONUNBUFFERED 1
  WORKDIR /wheels
  
  COPY ./requirements.txt /wheels/
  RUN pip install -U pip \
      &amp;&amp; pip wheel -r ./requirements.txt
  
  FROM python:3.6.10-alpine
  ENV PYTHONUNBUFFERED=1
  
  RUN apk update
  RUN apk add --no-cache \
              --upgrade \
              --repository http://dl-cdn.alpinelinux.org/alpine/edge/main \
          make \
          automake \
          gcc \
          g++ \
          subversion \
          python3-dev \
          gettext \
          libpq \
          postgresql-client \
      &amp;&amp; rm -rf /var/cache/apk/*
  
  COPY --from=builder /wheels /wheels
  RUN pip install -U pip \
     &amp;&amp; pip install -r ./wheels/requirements.txt --find-links ./wheels \
     &amp;&amp; rm -rf /wheels \
     &amp;&amp; rm -rf /root/.cache/pip/*
  
  
  WORKDIR /app
  COPY ./ /app
  
  COPY ./docker/entrypoint.sh /
  ENTRYPOINT [ "/entrypoint.sh" ] 
  </code></pre>
  
  <p>And my requirements.txt:</p>
  
  <pre><code>asgiref==3.2.3
  Django==3.0.2
  luhn==0.2.0
  nltk==3.4.5
  numpy==1.18.1
  psycopg2==2.8.4
  pytest==5.3.5
  pytz==2019.3
  spacy==2.2.3
  sqlparse==0.3.0
  yapf==0.29.0
  gensim==3.8.1
  </code></pre>
  
  <p>Here's an example log output:</p>
  
  <pre><code>Looking in links: ./wheels
  Processing /wheels/asgiref-3.2.3-py2.py3-none-any.whl
  Processing /wheels/Django-3.0.2-py3-none-any.whl
  Processing /wheels/luhn-0.2.0-py3-none-any.whl
  Processing /wheels/nltk-3.4.5-py3-none-any.whl
  Collecting numpy==1.18.1
    Downloading numpy-1.18.1.zip (5.4 MB)
    Installing build dependencies: started
    Installing build dependencies: finished with status 'done'
    Getting requirements to build wheel: started
    Getting requirements to build wheel: finished with status 'done'
      Preparing wheel metadata: started
      Preparing wheel metadata: finished with status 'done'
  Processing /wheels/psycopg2-2.8.4-cp36-cp36m-linux_x86_64.whl
  Processing /wheels/pytest-5.3.5-py3-none-any.whl
  Processing /wheels/pytz-2019.3-py2.py3-none-any.whl
  Collecting spacy==2.2.3
    Downloading spacy-2.2.3.tar.gz (5.9 MB)
  </code></pre>
  
  <p>Basically I want <code>numpy</code> and <code>spacy</code> to be processed like Django and the other deps straight from the wheel.</p>