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