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
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
July 6, 2013 11:20 AM



On Sat, Jul 6, 2013 at 11:04 AM, Jeff Whitaker <jsw...@fastmail.fm> wrote:
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
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
July 6, 2013 10:04 AM
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
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
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
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
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
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to