On Monday 09 June 2008 01:27:57 Gael Varoquaux wrote:
> On Sun, Jun 08, 2008 at 06:13:24PM -0400, Darren Dale wrote:
> > Matplotlib's setup scripts are designed to avoid this problem. There are
> > three conditions under which we install traits:
> >
> > 1) Traits is not installed
> > 2) A previous version of traits is installed, but it is a version
> > installed by matplotlib. I added an "-mpl" to the end of traits
> > __version__ string so we can keep track.
> > 3) The user explicitly askes for it in setup.cfg
> >
> > So if matplotlib is overwriting traits when it should not, I want to fix
> > it. But I need more information about what is causing it, because I don't
> > see how it could happen.
>
> If Traits is installed after MPL, if I get it right, then the problem
> occurs. IIRC, this is the problem I stumbled upon once.

I don't see why that would cause a problem.

> > I tried this when I first started working with TConfig, and concluded
> > that it was not possible because there are too many places where traits
> > expects enthought to be a top level package. There were all kind of
> > errors, exceptions being raised that were not named as expected,
> > extension code that would need to be modified, so we settled on the
> > current solution.
>
> OK. You are right. In nipy I modified enthought.traits and
> enthought.etsconfig. This was not a beautiful job, I must admit. Maybe
> monkey patching sys.path is the option (it is the way eggs do it) thought
> I must admit I hate it, because it puts a lot of magic, that will
> take the user by surprise. Anyway, the criteria for monkey-patching
> sys.path must be improved, I feel.

I also considered modifying sys.patch, this solution was roundly booed.

> If I understand things correctly, the current problem can be described
> by:
>
>    * User has an old version of ETS, (the one in Enthon 1.0.4, that is a
>      very old one), his code needs the old version.
>    * User installs a new version of MPL.
>    * His code stops working.
>
> I agree that as you describe things, this should not happen. Maybe I have
> gotten wrong the order in which the user did things. I have the feeling
> things shouldn't be dependent on the order in which you do the steps
> (maybe the test for monkey-patching sys.path should not be at
> install time, but at load time).

What test? I don't follow.

> Maybe the test fails for a very old version of traits. I wanted to have a
> quick look at this code, but I can't find it after a quick scan of the
> MPL source, and I can't devote much time to this right now.

Its a short section in setupext.py (which is in the same directory a 
setup.py), the function is called check_provide_traits.

I think we would rather make traits an external dependency, if it could be 
easily installed as a separate package by a novice python user. Would it be 
possible for http://code.enthought.com/projects/traits/ to list specific 
instructions and links to the downloads? Or to list traits on the Python 
Package Index?

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to