From: Michael D. <md...@st...> - 2013-07-17 12:46:36
|
Sorry to just be getting to this discussion now, after a vacation. The move to setuptools was discussed at length as part of MEP11. See here: https://github.com/matplotlib/matplotlib/wiki/MEP11 and the MEP11 mailing list thread. It has been a long standing bug that we ship Python dependencies along with matplotlib. Users were reporting pyparsing bugs to matplotlib, assuming it was a matplotlib project, etc. That was the primary impetus for moving to setuptools: so that pip dependency resolution would work. It has not been without headaches -- the "remerge" of distribute back into setuptools in particular was handled really poorly by upstream. I do hope that now that the community has re-coalesed around the "new" setuptools and the move from eggs to wheels that things will get better in the near future. But I still think the new approach is far better than what we had. Sorry that the namespace package declaration was missed and fell through the cracks, but I'm glad we noticed it before 1.3.0 final. Is it the case that PR #2210, or are there still issues to be resolved? Mike On 07/06/2013 01:59 PM, Jeff Whitaker wrote: >> Thomas Kluyver <mailto:th...@kl...> >> July 6, 2013 11:26 AM >> >> *distribute*, which was a fork of setuptools, was merged into >> setuptools. *distutils* is the component in the standard library, and >> is still there. I still prefer distutils where possible, precisely >> because setuptools' eggs are a mess. >> >> Thomas > > I agree eggs are a mess. Given that it is still easy to have the old > behavior, can someone explain why the change was made to have setup.py > create eggs by default? > > -Jeff >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> Damon McDougall <mailto:dam...@gm...> >> July 6, 2013 11:20 AM >> >> >> >> On Sat, Jul 6, 2013 at 11:04 AM, Jeff Whitaker <js...@fa... >> <mailto:js...@fa...>> wrote: >> >>> Damon McDougall <mailto:dam...@gm...> >>> July 6, 2013 9:32 AM >>> >>> >>> >>> If I do a clean install of mpl master, and then of basemap, >>> basemap >>> lands in dist-packages/mpl_toolkits, as it always has. But >>> now it is >>> not found--I can't import it. It seems that now the *real* >>> mpl_toolkits >>> is cleverly hidden inside an egg directory with a monstrous >>> name, >>> leaving basemap orphaned in a directory with no __init__.py. >>> As a >>> workaround I can symlink it into the egg location. I >>> suspect the real >>> solution will require basemap to use setuptools, correct? I >>> don't know >>> how to do this, so I hope someone who does will submit a PR. >>> >>> >>> Actually, using the new setuptools isn't adequate, I just tried >>> it locally on my machine and it still doesn't install itself >>> into the matplotlib egg. >>> >>> I think the proper solution here is to add basemap as an >>> optional dependency to matplotlib and have the user set a flag >>> (off by default) to pull basemap if it's desired >>> >>> Does that sound like a reasonable solution? >> >> What if a user decides later that he/she wants to install >> basemap? Then they would have to reinstall matplotlib? That >> doesn't sound reasonable to me. >> >> >> Actually, on reflection, I'm in agreement with you. I'm comfortable >> installing from source but this poses a larger problem when users >> download the basemap binary and expect it to Just Work. >> >> How about having matplotlib install a symlink to the egg location? >> >> >> If there's a way for setuptools to modify the matplotlib egg to add a >> symlink, then it must be possible for setuptools to just put the >> files there. I just haven't figured out how to do that. >> >> Why the change to using setuptools by default in the first place? >> >> >> Long story. The short story is that distutils was merged into >> setuptools. So setuptools is now the recommended way to install >> python packages. >> >> >> -Jeff >>> >>> P.S. Note that the other mpl_toolkits are installed into the >>> correct place because they are shipped with matplotlib and >>> installed at the same time. We could ship basemap with >>> matplotlib too but it's a rather large download. >>> >>> Best wishes, >>> Damon >>> >>> -- >>> Damon McDougall >>> http://www.damon-is-a-geek.com >>> Institute for Computational Engineering Sciences >>> 201 E. 24th St. >>> Stop C0200 >>> The University of Texas at Austin >>> Austin, TX 78712-1229 >>> Eric Firing <mailto:ef...@ha...> >>> July 6, 2013 12:53 AM >>> If I do a clean install of mpl master, and then of basemap, >>> basemap lands in dist-packages/mpl_toolkits, as it always has. >>> But now it is not found--I can't import it. It seems that now >>> the *real* mpl_toolkits is cleverly hidden inside an egg >>> directory with a monstrous name, leaving basemap orphaned in a >>> directory with no __init__.py. As a workaround I can symlink it >>> into the egg location. I suspect the real solution will require >>> basemap to use setuptools, correct? I don't know how to do >>> this, so I hope someone who does will submit a PR. >>> >>> Eric >>> >>> ------------------------------------------------------------------------ >> >> >> >> >> -- >> Damon McDougall >> http://www.damon-is-a-geek.com >> Institute for Computational Engineering Sciences >> 201 E. 24th St. >> Stop C0200 >> The University of Texas at Austin >> Austin, TX 78712-1229 >> Jeff Whitaker <mailto:js...@fa...> >> July 6, 2013 10:04 AM >>> Damon McDougall <mailto:dam...@gm...> >>> July 6, 2013 9:32 AM >>> >>> >>> >>> If I do a clean install of mpl master, and then of basemap, basemap >>> lands in dist-packages/mpl_toolkits, as it always has. But now >>> it is >>> not found--I can't import it. It seems that now the *real* >>> mpl_toolkits >>> is cleverly hidden inside an egg directory with a monstrous name, >>> leaving basemap orphaned in a directory with no __init__.py. As a >>> workaround I can symlink it into the egg location. I suspect >>> the real >>> solution will require basemap to use setuptools, correct? I >>> don't know >>> how to do this, so I hope someone who does will submit a PR. >>> >>> >>> Actually, using the new setuptools isn't adequate, I just tried it >>> locally on my machine and it still doesn't install itself into the >>> matplotlib egg. >>> >>> I think the proper solution here is to add basemap as an optional >>> dependency to matplotlib and have the user set a flag (off by >>> default) to pull basemap if it's desired >>> >>> Does that sound like a reasonable solution? >> >> What if a user decides later that he/she wants to install basemap? >> Then they would have to reinstall matplotlib? That doesn't sound >> reasonable to me. >> >> How about having matplotlib install a symlink to the egg location? >> >> Why the change to using setuptools by default in the first place? >> >> -Jeff >>> >>> P.S. Note that the other mpl_toolkits are installed into the >>> correct place because they are shipped with matplotlib and installed >>> at the same time. We could ship basemap with matplotlib too but >>> it's a rather large download. >>> >>> Best wishes, >>> Damon >>> >>> -- >>> Damon McDougall >>> http://www.damon-is-a-geek.com >>> Institute for Computational Engineering Sciences >>> 201 E. 24th St. >>> Stop C0200 >>> The University of Texas at Austin >>> Austin, TX 78712-1229 >>> Eric Firing <mailto:ef...@ha...> >>> July 6, 2013 12:53 AM >>> If I do a clean install of mpl master, and then of basemap, basemap >>> lands in dist-packages/mpl_toolkits, as it always has. But now it >>> is not found--I can't import it. It seems that now the *real* >>> mpl_toolkits is cleverly hidden inside an egg directory with a >>> monstrous name, leaving basemap orphaned in a directory with no >>> __init__.py. As a workaround I can symlink it into the egg >>> location. I suspect the real solution will require basemap to use >>> setuptools, correct? I don't know how to do this, so I hope someone >>> who does will submit a PR. >>> >>> Eric >>> >>> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Windows: >> >> Build for Windows Store. >> >> http://p.sf.net/sfu/windows-dev2dev >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> Damon McDougall <mailto:dam...@gm...> >> July 6, 2013 9:32 AM >> >> >> >> If I do a clean install of mpl master, and then of basemap, basemap >> lands in dist-packages/mpl_toolkits, as it always has. But now it is >> not found--I can't import it. It seems that now the *real* >> mpl_toolkits >> is cleverly hidden inside an egg directory with a monstrous name, >> leaving basemap orphaned in a directory with no __init__.py. As a >> workaround I can symlink it into the egg location. I suspect the >> real >> solution will require basemap to use setuptools, correct? I >> don't know >> how to do this, so I hope someone who does will submit a PR. >> >> >> Actually, using the new setuptools isn't adequate, I just tried it >> locally on my machine and it still doesn't install itself into the >> matplotlib egg. >> >> I think the proper solution here is to add basemap as an optional >> dependency to matplotlib and have the user set a flag (off by >> default) to pull basemap if it's desired. >> >> Does that sound like a reasonable solution? >> >> P.S. Note that the other mpl_toolkits are installed into the correct >> place because they are shipped with matplotlib and installed at the >> same time. We could ship basemap with matplotlib too but it's a >> rather large download. >> >> Best wishes, >> Damon >> >> -- >> Damon McDougall >> http://www.damon-is-a-geek.com >> Institute for Computational Engineering Sciences >> 201 E. 24th St. >> Stop C0200 >> The University of Texas at Austin >> Austin, TX 78712-1229 >> Eric Firing <mailto:ef...@ha...> >> July 6, 2013 12:53 AM >> If I do a clean install of mpl master, and then of basemap, basemap >> lands in dist-packages/mpl_toolkits, as it always has. But now it is >> not found--I can't import it. It seems that now the *real* >> mpl_toolkits is cleverly hidden inside an egg directory with a >> monstrous name, leaving basemap orphaned in a directory with no >> __init__.py. As a workaround I can symlink it into the egg >> location. I suspect the real solution will require basemap to use >> setuptools, correct? I don't know how to do this, so I hope someone >> who does will submit a PR. >> >> Eric >> >> ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > > > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel |