Skip to content

Python package partially installed in Docker with pip >= 7.0.0 #2823

@matm

Description

@matm

After a hard day troubleshooting my Docker deployment (django app), I finally found that latest version of pip (7.0.0 and 7.0.1) breaks the installation of Django inside Docker.

Don't know how it's related (or not), but pip install Django==1.3 works fine in a virtualenv, i.e I get all the files installed (a complete distribution):

(myenv):~/progs/argamato $ pip -V
pip 7.0.1 from /home/mathias/.virtualenvs/myenv/lib/python2.7/site-packages (python 2.7)

I can find the login.html template required on the admin page:

(myenv):~/.virtualenvs/myenv/lib/python2.7/site-packages $ find django \
  -name login.html
django/contrib/admin/templates/admin/login.html
django/contrib/auth/tests/templates/registration/login.html
django/contrib/flatpages/tests/templates/registration/login.html

while the same command run inside my Docker web container returns nothing:

root@9edf6692c07d:/src/argamato# pip -V
pip 7.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
root@9edf6692c07d:/src/argamato# find /usr/local/lib/python2.7/dist-packages/django \
    -name login.html
root@9edf6692c07d:/src/argamato#

Comparing size of deployed distribution is kind of fun too:

root@9edf6692c07d:/src/argamato# du -sh /usr/local/lib/python2.7/dist-packages/django
13M /usr/local/lib/python2.7/dist-packages/django

While the real uncompressed stuff takes a lot more (about 40MB).

Some investigations shows that uncompressing the cached tarball creates the django, Django-1.3.data and Django-1.3.dist-info directories:

root@9edf6692c07d:~# unzip .cache/pip/./wheels/87/59/82/4099bbbed04d9d048d7fd9d2284716df97998a2a2a1895674f/Django-1.3-py2-none-any.whl -d /tmp
root@9edf6692c07d:~# ls /tmp/
django  Django-1.3.data  Django-1.3.dist-info

My missing templates are in the /tmp/Django-1.3.data directory but pip install never deploys it in /usr/local/lib/python2.7/dist-packages/. Only django and Django-1.3.dist-info are available, thus the missing template files.

Anyway, that reminded me that my Docker installation was perfectly working a few days ago, so I switch back to pip 6.1.1 and BAM, problem solved...

Don't you think of a regression bug here?

(BTW, pip 7.0.1 inside a virtuaenv inside a Docker container is broken too).

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-lockedOutdated issues that have been locked by automation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions