[Distutils] setup script not found when directory name is 100 characters

Maurits van Rees m.van.rees at zestsoftware.nl
Tue Sep 2 23:26:26 CEST 2008


Marius Gedminas, on 2008-09-02:
>
> On Tue, Sep 02, 2008 at 09:23:30AM +0000, Maurits van Rees wrote:
>> I'm sure I have read this somewhere, but my search skills are failing
>> me.  When easy installing a package this goes wrong:
>> 
>> $ bin/easy_install ../foo.bar/dist/foo.bar-1.0.3.tar.gz 
>> Processing foo.bar-1.0.3.tar.gz
>> error: Couldn't find a setup script in ../foo.bar/dist/foo.bar-1.0.3.tar.gz
>> 
>> The cause is that there is a directory foo.bar-1.0.3/.../baz for which
>> the length of this path is exactly 100 characters.  When I release a
>> version 1.1 instead, this path is reduced to 98 characters and
>> easy_install happily installs it.
>> 
>> Does anyone know which version of setuptools or easy_install
>> introduced this problem or fixes it?  Or a link where this is
>> explained?
>
> Which Python version is this?  I seem to remember some bug in stdlib's
> tarfile module that couldn't handle paths longer than 100 characters.

Ah right, tarfile is the culprit.  I am using python2.4.  And one of
the bug reports you pasted mentioned that python2.4 is not maintained
anymore.

So I guess the possible workarounds are:

- Make a .egg instead of a .tar.gz for my package.

- Restrict myself to using x.y or a.b.c.d as the version of this
  package.

- Give the directory a shorter name...


Thanks for clearing this up.

-- 
Maurits van Rees | http://maurits.vanrees.org/
            Work | http://zestsoftware.nl/
"This is your day, don't let them take it away." [Barlow Girl]



More information about the Distutils-SIG mailing list