[Distutils] Distribute error? datetimewidget.pot: File name too long

P.J. Eby pje at telecommunity.com
Mon Sep 27 01:18:36 CEST 2010

Fascinating.  It appears as though your virtualenv has both 
distribute 0.6.14 *and* setuptools 0.6c12dev on sys.path at the same 
time.  However, I'm most curious about this one:

At 10:52 PM 9/26/2010 +0100, Jon Hadley wrote:
>paster_plugins fez.atcsv 0.3 ()

This looks like an error to me, and one that *could* create the 
behavior being seen.  Your app should not be defining the 
paster_plugins entry point; instead, you are supposed to just have a 
setup_requires=['PasteScript'] in order to take care of it.

What is probably happening now is that your package is claiming it 
implements this keyword argument, so any project that is built with 
your project on sys.path that uses this keyword (such as your own 
proejct) will try to add your project's runtime dependencies (i.e. 
setuptools and plone.app.z3cform) to sys.path.  So, it tries to build 
those dependencies first.

However, at that point, it appears fez.atcsv is *also* providing an 
entry point for the paster_plugins.txt egg-info writer...  which is 
even worse, because it affects *every* app built, not just ones that 
use the paster_plugins setup() keyword.

So, as soon as the dependency tries to build, it wants to have 
fez.atcsv built...  so it tries to build fez.atcsv's 
dependencies...  and so on, and so on, indefinitely.

Here's how to fix the problem:

First, remove all fez.atcsv-*.egg files or directories -- 
EVERYWHERE.  Delete every last one off the system, no matter where it is.

Second, remove the entry_points.txt file from the fez.atcsv.egg-info/ 
directory within your project source.

Third and finally, remove the entire entry_points keyword from your 
setup() call in setup.py, and replace it with setup_requires=['PasteScript'].

This would probably be sufficient to fix the problem if setuptools 
were first on your sys.path, since it has fixes for PasteScript's 
internal build recursion; I do not know if it will fix the problem 
with distribute, unless you first make sure PasteScript's 
dependencies are all installed.

However, I'm pretty certain at this point that the bogus entry_points 
in your setup.py is the source of the entire problem, and explains 
why I could not reproduce it (as at no point would a copy of the 
broken fez.atcsv have been on my sys.path during any of my attempts, 
whereas it presumably was during most if not all of yours).

More information about the Distutils-SIG mailing list