2009/10/13 Michael Whapples <mwhapples@aim.com>:
Distribute is a fork and a complete replacement of setuptools. Hence you can only have one installed in each environment at once. Yes it's a mess. May be there's certain reasons why setuptools and distribute couldn't be designed to coexist on a system (eg. may be its something to do with how they manage the package environment and include packages in eggs)
Because setuptools is used not only when you create packages, but also when you install them, is the main reason. And that means we need to replace setuptools. Again, it's not a choice on the package level, but on the user level. It's like a car. It requires wheels. Which brand you use doesn't matter. But you can't have 8 sets of tires on a 4 wheel car. :)
There really is not many reasons for any package to require distribute over setuptools. It's not a package choice, it's a user-choice. I sort of understand that but not fully. A package may need to specify distribute if it wants to be python3 compatible.
Nope. It needs to *use* Distribute to install under Python 3. But that is not a problem, as setuptools doens't exist for Python 3, so there is no conflict there. But it would still specify and import setuptools.
The only way I can get what you say to work in my mind is not to use the automatic install of setuptools/distribute (IE. not to use distribute_setup.py or ez_setup.py in my setup.py script, I mean those lines:
from ex_setup import use_setuptools use_setuptools()
Oh, right, don't do that. Does any package do that? Crazy stuff. :-)
If it helps you, it helps. I was more meaning it doesn't help the python community, it doesn't help solve this mess.
I don't think this mess can be solved. We can only walk around it by building something new and better by refactoring setuptools into small pieces. I know some people of the Distribute team has started (tentatively called Distribute2) and PJE has also expressed interest in doing this. If some sort of cooperation can happen there that would be good, if not people will have a choice, and that's also good. In any case Distribute 0.6/setuptools will slowly go out of use. But this is a process that will take years. Unfortunately I don't think a short term solution is realistic.
Anyway I will have to just consider what direction would be most productive for my packages
Neither. You don't need a direction for your packages. If setuptools have a feature you need, use it. If setuptools turns out to have bugs, or you need Python 3 support, then install Distribute. Your package will not notice the difference. I'd like to repeat again, just to make sure that there are no misunderstandings, that this is not about winning, and that there is no competition between setuptools and distribute. Distribute is, as of today, only one thing: setuptools + bugfixes + python 3 support. There is no reason for you to use Distribute unless you need Python 3 support or encounter a setuptools bug (unless you feel like fixing bugs or betatesting Distribute of course). setuptools 0.6c10 will remove most or all of the bug difference, which means there is less reason for people to switch to Distribute. That's a good thing. Distribute doesn't need users. It's users who needs Distribute. That's why it exists. It's driven purely out of necessity, nothing else. -- Lennart Regebro: Python, Zope, Plone, Grok http://regebro.wordpress.com/ +33 661 58 14 64