[Distutils] Weird easy_install behavior when reinstalling

Ian Bicking ianb at colorstudy.com
Tue Sep 2 22:47:47 CEST 2008


I'm getting some weird behavior for a particular package, installed from 
svn.  To reproduce:

  virtualenv test-env
  ./test-env/bin/easy_install http://trac-hacks.org/svn/includemacro/0.11

a bunch of stuff is installed... then run:

  ./test-env/bin/easy_install http://trac-hacks.org/svn/includemacro/0.11

probably the first time you reinstall (and if not then, try a couple 
times) you get an exception like:

> $ ./T2/bin/easy_install http://trac-hacks.org/svn/includemacro/0.11
> Downloading http://trac-hacks.org/svn/includemacro/0.11
> Doing subversion checkout from http://trac-hacks.org/svn/includemacro/0.11 to /tmp/easy_install-SiGKUf/0.11
> Processing 0.11
> Running setup.py -q bdist_egg --dist-dir /tmp/easy_install-SiGKUf/0.11/egg-dist-tmp-5rw1jx
> zip_safe flag not set; analyzing archive contents...
> TracIncludeMacro 2.1 is already the active version in easy-install.pth
> 
> Installed /home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/TracIncludeMacro-2.1-py2.4.egg
> Processing dependencies for TracIncludeMacro==2.1
> Traceback (most recent call last):
>   File "./T2/bin/easy_install", line 7, in ?
>     sys.exit(
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 1671, in main
>     with_ei_usage(lambda:
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 1659, in with_ei_usage
>     return f()
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 1675, in <lambda>
>     distclass=DistributionWithoutHelpCommands, **kw
>   File "/usr/lib/python2.4/distutils/core.py", line 149, in setup
>     dist.run_commands()
>   File "/usr/lib/python2.4/distutils/dist.py", line 946, in run_commands
>     self.run_command(cmd)
>   File "/usr/lib/python2.4/distutils/dist.py", line 966, in run_command
>     cmd_obj.run()
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 211, in run
>     self.easy_install(spec, not self.no_deps)
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 422, in easy_install
>     return self.install_item(None, download, tmpdir, deps, True)
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 478, in install_item
>     self.process_distribution(spec, dist, deps)
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/setuptools/command/easy_install.py", line 518, in process_distribution
>     distros = WorkingSet([]).resolve(
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 529, in resolve
>     requirements.extend(dist.requires(req.extras)[::-1])
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 2107, in requires
>     dm = self._dep_map
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 2099, in _dep_map
>     for extra,reqs in split_sections(self._get_metadata(name)):
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 2518, in split_sections
>     for line in yield_lines(s):
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 1813, in yield_lines
>     for ss in strs:
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 2121, in _get_metadata
>     for line in self.get_metadata_lines(name):
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 1140, in get_metadata_lines
>     return yield_lines(self.get_metadata(name))
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 1137, in get_metadata
>     return self._get(self._fn(self.egg_info,name))
>   File "/home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/setuptools-0.6c8-py2.4.egg/pkg_resources.py", line 1195, in _get
>     return self.loader.get_data(path)
> zipimport.ZipImportError: bad local file header in /home/ianb/src/PoachEggs/T2/lib/python2.4/site-packages/TracIncludeMacro-2.1-py2.4.egg

I assume this is while it is trying to read 
TracIncludeMacro-xxx.egg/EGG-INFO/requires.txt.  I've tried opening that 
egg with zipfile, and it works fine.  This problem seems somewhat 
specific to TracIncludeMacro, though I can't figure out why.

-- 
Ian Bicking : ianb at colorstudy.com : http://blog.ianbicking.org


More information about the Distutils-SIG mailing list