[Distutils] Distribute error? datetimewidget.pot: File name too long
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