ContinuumIO / anaconda-issues

Anaconda issue tracking
646 stars 220 forks source link

New package request: cartopy #319

Open shoyer opened 9 years ago

shoyer commented 9 years ago

Cartopy is an extremely useful package for mapping in Python -- it's significantly faster than basemap (and IMO has a better API).

It would be great if we could get Cartopy included in Anaconda. There are already conda recipes for Cartopy and even a popular binstar channel, but this separation is non-ideal, mostly because cartopy needs a newer version of geos (e.g., 3.4.2) than comes with Anaconda (3.3.3). This means an entire stack of libraries that depend on geos but are already in Anaconda (notably basemap and shapely) also need to be rebuilt to ensure compatibility with the new geos.

I suppose an alternative would be simply updating the version of geos bundled in Anaconda, but I think Cartopy would be really nice to include for Anaconda users.

CC @pelson

pelson commented 9 years ago

Also, cartopy was added to EPD over a year ago http://blog.enthought.com/enthought-canopy/enthought-canopy-1-4-released-includes-new-canopy-configured-command-prompt/#.VUH_70Sqoio :wink:

ccordoba12 commented 9 years ago

@ilanschnell, what do you think?

I could try to build the recipes to see if they're working or not :-)

ilanschnell commented 9 years ago

Yes, this would a nice package to add to Anaconda.

ocefpaf commented 9 years ago

@ccordoba12 when writing your version of the recipe can you change PIL for Pillow? What do you think @pelson?

pelson commented 9 years ago

:+1:

groutr commented 9 years ago

I'm working on upgrading GEOS in anaconda to 3.4.2

shoyer commented 9 years ago

According to @ocefpaf, cartopy may be possible to install even with geos 3.3.3: https://github.com/SciTools/cartopy/issues/612

ocefpaf commented 9 years ago

But a new geos on the default channel is also welcome :wink:. You just need to be sure to compile Shapely against the same geos used by cartopy.

groutr commented 9 years ago

I'm upgrading geos, and I'll be sure to recompile shapely (probably update it to 1.5.9 while I'm at it). I think I have geos compiling on windows too. Then we'll see about adding cartopy :)

ocefpaf commented 9 years ago

@groutr That is great! Thanks!!

opoplawski commented 6 years ago

It's now impossible to install cartopy from the SciTools channel with the base anaconda channel:

conda create -n scipy -c anaconda -c SciTools python=2.7 basemap cartopy
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - basemap
  - cartopy -> geos[version='>=3.6.2,<3.6.3.0a0']

Could cartopy be added to anaconda and kept in sync (per original request) or can basemap be updated to work with a newer geos? Thanks.

See also https://github.com/SciTools/cartopy/issues/1068

ocefpaf commented 6 years ago

@opoplawski basemap and cartopy can be installed from the conda-forge channel. Also, the scitools channel is deprecated and should not be used.

opoplawski commented 6 years ago

Thanks. It also appears that cartopy is in the anaconda channel as well, but shouldn't the anaconda channel be self consistent:

conda create -n cartopy --override-channels -c anaconda python=2.7 basemap cartopy
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - basemap
  - cartopy -> geos[version='>=3.6.2,<3.6.3.0a0']

That's a pretty tight dep on geos version.

msarahan commented 6 years ago

By using -c anaconda, and not using defaults, you are creating problems for yourself.

The anaconda channel is both the old "free" channel and the new "main" channel combined. Things on the new channel are definitely self-consistent. They are not necessarily compatible with stuff on the old channel. Basemap is only on the older channel right now.

You should never use -c anaconda.

opoplawski commented 6 years ago

Lovely that anaconda provides a channel that one should never use...

opoplawski commented 6 years ago

Okay, stock config, same issue:

# conda create -n cartopy python=2.7 basemap cartopy
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - basemap
  - cartopy -> geos[version='>=3.6.2,<3.6.3.0a0']
Use "conda info <package>" to see the dependencies for each package.
          conda version : 4.5.1
    conda-build version : not installed
         python version : 3.4.8.final.0
           channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/linux-64
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/linux-64
                          https://repo.anaconda.com/pkgs/pro/noarch

I see that this uses both the "main" and "free" channels as well, lovely.

msarahan commented 6 years ago

Sorry this is broken for you. As I said, basemap is only on the old channel right now, and hasn't been rebuilt for the new set of packages in main. If you have a support contract, please contact support@continuum.io. They can increase the priority of a fix. Otherwise, please use conda-forge for now as @ocefpaf recommended.

Jeitan commented 6 years ago

Is it possible to push this and get cartopy added to the default installer at some point? It's completely taken over basemap, notwithstanding maintenance for a couple years. Having it in the installer makes a difference for me, because I'm working on offline systems and it's almost impossible to get packages that don't come with the default installer.