setup script not found when directory name is 100 characters
Hi, 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? Thanks, -- Maurits van Rees | http://maurits.vanrees.org/ Work | http://zestsoftware.nl/ "This is your day, don't let them take it away." [Barlow Girl]
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. Google + bugs.python.org tell me there were several bugs http://bugs.python.org/issue1583506 http://bugs.python.org/issue1509889 http://bugs.python.org/issue1609958 http://bugs.python.org/issue1719898 Marius Gedminas -- Always forgive your enemies. Nothing annoys them more. -- Oscar Wilde
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]
On Tue, Sep 02, 2008 at 09:26:26PM +0000, Maurits van Rees wrote:
Marius Gedminas, on 2008-09-02:
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.
.egg is a binary distribution; what you probably want is a .zip source distribution. Marius Gedminas -- We don't care. We don't have to. We're the Phone Company.
Marius Gedminas, on 2008-09-02:
On Tue, Sep 02, 2008 at 09:26:26PM +0000, Maurits van Rees wrote:
Marius Gedminas, on 2008-09-02:
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.
.egg is a binary distribution; what you probably want is a .zip source distribution.
Ah, right, you can give options to sdist. This indeed works fine: python2.4 setup.py sdist --formats=zip Or this can be put in setup.cfg: [sdist] # guard against tarfile bug by using the zip format formats = zip and then a plain sdist works fine again: python2.4 setup.py sdist Thanks! -- Maurits van Rees | http://maurits.vanrees.org/ Work | http://zestsoftware.nl/ "This is your day, don't let them take it away." [Barlow Girl]
2008/9/2 Maurits van Rees
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...
If this egg is exclusively for a buildout environment, you could also add a patch to your buildout before eggs get collected see: http://tarekziade.wordpress.com/2008/06/19/python-24-tarfile-module-is-buggy...
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]
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig
-- Tarek Ziadé - Directeur Technique INGENIWEB (TM) - SAS 50000 Euros - RC B 438 725 632 Bureaux de la Colline - 1 rue Royale - Bâtiment D - 9ème étage 92210 Saint Cloud - France Phone : 01.78.15.24.00 / Fax : 01 46 02 44 04 http://www.ingeniweb.com - une société du groupe Alter Way
participants (3)
-
Marius Gedminas
-
Maurits van Rees
-
Tarek Ziade