Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conda installation requires DOWNgrading of dependencies #853

Closed
bulli92 opened this issue Feb 5, 2017 · 10 comments
Closed

Conda installation requires DOWNgrading of dependencies #853

bulli92 opened this issue Feb 5, 2017 · 10 comments

Comments

@bulli92
Copy link

bulli92 commented Feb 5, 2017

Hi,

I just installed carroty using condo. When doing so, condo forces me to actually DOWNgrade some of the dependencies as follows:

The following packages will be DOWNGRADED due to dependency conflicts:

matplotlib:  2.0.0-np111py27_0           --> 1.5.1-np110py27_0 
numpy:       1.11.3-py27_0               --> 1.10.2-py27_0     
pandas:      0.19.2-np111py27_1          --> 0.18.1-np110py27_0
pyqt:        5.6.0-py27_2                --> 4.11.4-py27_4     
qt:          5.6.2-0                     --> 4.8.7-4           
qtconsole:   4.2.1-py27_1                --> 4.2.1-py27_0      
scipy:       0.18.1-np111py27_1          --> 0.16.0-np110py27_1

Is this really required or is it just that the condo package build recipe is not specific enough regarding the dependencies?
The carroty installation documentation does not say that there is a need for a specific version of e.g. spicy. It just says spicy > X.XX is required.
However, it seems that only v0.16 is currently supported for scipy.

It would be helpful to check if carroty can also work with the newer versions of these dependencies and if so, change the condo packaging accordingly.

Thanks!

@dopplershift
Copy link
Contributor

That's a weird set of downgrades. Can you paste in the actual line you were using to install/upgrade cartopy? Also, can you post the output of conda config --show?

@agolovanov
Copy link

It's the same for me on Python 3.5:

The following packages will be DOWNGRADED due to dependency conflicts:

    matplotlib: 2.0.0-np111py35_0           --> 1.5.1-np110py35_0 
    mkl:        2017.0.1-0                  --> 11.3.3-0          
    numpy:      1.11.3-py35_0               --> 1.10.4-py35_2     
    pandas:     0.19.2-np111py35_1          --> 0.18.1-np110py35_0
    pyqt:       5.6.0-py35_2                --> 4.11.4-py35_4     
    qt:         5.6.2-3                     --> 4.8.7-4           
    qtconsole:  4.2.1-py35_1                --> 4.2.1-py35_0      
    scipy:      0.18.1-np111py35_1          --> 0.17.1-np110py35_1

I use the conda install -c scitools cartopy command to install cartopy.

The output of conda config --show is

add_anaconda_token: True
add_pip_as_python_dependency: True
allow_softlinks: True
always_copy: False
always_softlink: False
always_yes: False
auto_update_conda: True
binstar_upload: None
changeps1: True
channel_alias: https://conda.anaconda.org
channel_priority: True
channels:
  - defaults
client_ssl_cert: 
client_ssl_cert_key: 
create_default_packages: []
debug: False
default_channels:
  - https://repo.continuum.io/pkgs/free
  - https://repo.continuum.io/pkgs/r
  - https://repo.continuum.io/pkgs/pro
disallow: []
envs_dirs:
  - /home/elrond16/miniconda3/envs
json: False
offline: False
proxy_servers: {}
quiet: False
shortcuts: True
show_channel_urls: None
ssl_verify: True
track_features: []
update_dependencies: True
use_pip: True
verbosity: 0

@dopplershift
Copy link
Contributor

You might consider adding the conda-forge channel as a place to get more packages.

@jypeter
Copy link

jypeter commented Feb 23, 2017

I have a similar problem, with a different set of requested downgrades, when trying to install into uvcdat 2.8.0

I have created a uvcdat-2.8.0 environment using the following steps: https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:uvcdat:cdat_conda#installation_with_miniconda2

And then I have cloned this into a cdatm14 environment using: https://wiki.lsce.ipsl.fr/pmip3/doku.php/other:uvcdat:cdat_conda#cloning_uvcdat_to_add_specific_packages_for_lsce

If I then try to install cartopy with

conda install -n cdatm14 -c conda-forge -c uvcdat -c scitools cartopy

I get the following set of packages and downgrades

The following NEW packages will be INSTALLED:

    cartopy:    0.15.0-np111py27_0 conda-forge
    libxslt:    1.1.29-3           conda-forge
    lxml:       3.7.2-py27_1       conda-forge
    olefile:    0.44-py27_0        conda-forge
    owslib:     0.14.0-py27_0      conda-forge
    pillow:     4.0.0-py27_2       conda-forge
    pyepsg:     0.3.1-py27_0       conda-forge
    shapely:    1.5.17-np111py27_2 conda-forge

The following packages will be DOWNGRADED due to dependency conflicts:

    geos:       3.6.0-0            conda-forge --> 3.5.1-1           conda-forge
    matplotlib: 2.0.0-np111py27_2  conda-forge --> 1.5.3-np111py27_7 conda-forge

It gets even worse if I add the scitools channel

conda install -n cdatm14 -c scitools -c conda-forge -c uvcdat cartopy

The following NEW packages will be INSTALLED:

    cartopy:      0.15.0-np110py27_0                scitools
    funcsigs:     1.0.2-py27_0                      conda-forge
    libxslt:      1.1.29-3                          conda-forge
    lxml:         3.7.2-py27_1                      conda-forge
    mock:         2.0.0-py27_0                      conda-forge
    nose:         1.3.7-py27_2                      conda-forge
    olefile:      0.42.1-py27_1                     scitools
    openblas:     0.2.14-4
    owslib:       0.10.3-py27_0                     scitools
    pbr:          1.10.0-py27_0                     conda-forge
    pillow:       4.0.0-py27_1                      conda-forge
    proj.4:       4.9.1-1                           scitools
    pyepsg:       0.2.0-py27_0                      scitools
    shapely:      1.5.13-np110py27_1                scitools

The following packages will be UPDATED:

    asciidata:    2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    basemap:      1.0.8.dev0-np111py27_1            conda-forge --> 1.0.8.dev0-np110py27_1            conda-forge
    binaryio:     2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    cdms2:        2.8.1-np111py27_0                 uvcdat      --> 2.8.1-np110py27_0                 uvcdat
    cdtime:       2.8-np111py27_0                   conda-forge --> 2.8-np110py27_2                   uvcdat
    cssgrid:      2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    dsgrid:       2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    esmf:         ESMF_6_3_0rp1_ESMP_01-np111py27_2 uvcdat      --> ESMF_6_3_0rp1_ESMP_01-np110py27_2 uvcdat
    genutil:      2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    hdf5tools:    2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    lmoments:     2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    natgrid:      2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    ort:          2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    regridpack:   2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    shgrid:       2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    trends:       2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    unidata:      2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat
    uvcmetrics:   2.2-np111py27_2                   uvcdat      --> 2.2-np110py27_2                   uvcdat
    zonalmeans:   2.8-np111py27_2                   uvcdat      --> 2.8-np110py27_2                   uvcdat

The following packages will be DOWNGRADED due to dependency conflicts:

    fontconfig:   2.12.1-4                          conda-forge --> 2.12.1-1                          conda-forge
    freetype:     2.7-1                             conda-forge --> 2.6.3-1                           conda-forge
    matplotlib:   2.0.0-np111py27_2                 conda-forge --> 1.5.3-np110py27_5                 conda-forge
    numpy:        1.11.3-py27_0                                 --> 1.10.2-py27_0
    scikit-learn: 0.18.1-np111py27_1                            --> 0.17-np110py27_1
    scipy:        0.18.1-np111py27_1                            --> 0.16.0-np110py27_1

It's also strange that in the second case (with -c scitools at the front of the -c options) I'm told that proj.4 4.9.1-1 will be installed, when I already have proj4 4.9.3 installed

I confess I'm quite new to using conda

It seems I could avoid the downgrades by using --no-update-dependencies, but this would get me an older version of cartopy (0.14 instead of 0.15) as well as extra packages (funcsigs, mock, nose, pbr)...

(uvcdat-2.8.0) bash-4.1$ conda install -n cdatm14 --no-update-dependencies -c conda-forge -c uvcdat cartopy
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment /home/share/unix_files/cdat/miniconda2/envs/cdatm14:

The following NEW packages will be INSTALLED:

    cartopy:  0.14.3-np111py27_3 conda-forge
    funcsigs: 1.0.2-py27_0       conda-forge
    libxslt:  1.1.29-3           conda-forge
    lxml:     3.7.2-py27_1       conda-forge
    mock:     2.0.0-py27_0       conda-forge
    nose:     1.3.7-py27_2       conda-forge
    olefile:  0.44-py27_0        conda-forge
    owslib:   0.14.0-py27_0      conda-forge
    pbr:      1.10.0-py27_0      conda-forge
    pillow:   4.0.0-py27_2       conda-forge
    pyepsg:   0.3.1-py27_0       conda-forge
    shapely:  1.5.16-np111py27_0 conda-forge

Proceed ([y]/n)?

@jypeter
Copy link

jypeter commented Feb 24, 2017

I have had a similar problem with shapely that wanted the same downgrade of geos (shapely/shapely#472). Unfortunately, now that I have installed shapely (and some other dependencies), conda still wants me to downgrade geos

bash-4.1$ conda install -n cdatm14 -c conda-forge cartopy
Fetching package metadata ...........
Solving package specifications: .

Package plan for installation in environment /home/share/unix_files/cdat/miniconda2/envs/cdatm14:

The following NEW packages will be INSTALLED:

    cartopy:    0.15.0-np111py27_0 conda-forge
    libxslt:    1.1.29-3           conda-forge
    lxml:       3.7.2-py27_1       conda-forge
    owslib:     0.14.0-py27_0      conda-forge
    pyepsg:     0.3.1-py27_0       conda-forge

The following packages will be DOWNGRADED due to dependency conflicts:

    geos:       3.6.0-0            conda-forge --> 3.5.1-1           conda-forge
    matplotlib: 2.0.0-np111py27_2  conda-forge --> 1.5.3-np111py27_7 conda-forge

Proceed ([y]/n)? n

@ajdawson
Copy link
Member

Both the cartopy and shapely packages on conda-forge are pinned to version 3.5 of geos, so they are saying they won't work with 3.6, which is why conda tries to downgrade.

@bulli92
Copy link
Author

bulli92 commented Feb 24, 2017

o.k., thanks, this explains the issue.
Thus the question would be more to the cartopy and shapely maintainers if geos3.5.x is a strong constraint or if these packages would also work with higher versions.

@bulli92 bulli92 closed this as completed Feb 24, 2017
@billtubbs
Copy link

billtubbs commented Sep 24, 2018

I am getting the same issue. Almost every time I try to install or update anything I get:

The following packages will be DOWNGRADED:

    blas:         1.1-openblas                          conda-forge --> 1.0-mkl              
    numpy:        1.15.1-py36_blas_openblashd3ea46f_1   conda-forge [blas_openblas] --> 1.14.3-py36h9bb19eb_1
    scikit-learn: 0.19.2-py36_blas_openblasha84fab4_201 conda-forge [blas_openblas] --> 0.19.1-py36hffbff8c_0
    scipy:        1.1.0-py36_blas_openblash7943236_201  conda-forge [blas_openblas] --> 1.1.0-py36hcaad992_0 

Proceed ([y]/n)? 

Most recently this occurred during the following commands:

  • conda update bokeh
  • conda install -c conda-forge pscript
  • conda update statsmodels

Each time I let it downgrade them, then simply update them again:

$ conda update numpy blas scipy scikit-learn
...
The following packages will be UPDATED:

    blas:         1.0-mkl               --> 1.1-openblas                          conda-forge
    numpy:        1.14.3-py36h9bb19eb_1 --> 1.15.2-py36_blas_openblashd3ea46f_0   conda-forge [blas_openblas]
    numpy-base:   1.14.3-py36h479e554_1 --> 1.14.3-py36h7ef55bc_1                            
    scikit-learn: 0.19.1-py36hffbff8c_0 --> 0.19.2-py36_blas_openblasha84fab4_201 conda-forge [blas_openblas]
    scipy:        1.1.0-py36hcaad992_0  --> 1.1.0-py36_blas_openblash7943236_201  conda-forge [blas_openblas]

Proceed ([y]/n)? 

This doesn't seem to cause any problems (yet) but is it good practice and is this downgrading/re-upgrading really necessary?

B.t.w. I'm in an environment that has Python 3.6 installed:

(py36) MyMacBookPro:~ username$ which python
/Users/billtubbs/anaconda/envs/py36/bin/python

@QuLogic
Copy link
Member

QuLogic commented Sep 24, 2018

That has nothing to do with Cartopy; it is a problem with conda or whoever makes those packages.

@billtubbs
Copy link

That has nothing to do with Cartopy; it is a problem with conda or whoever makes those packages.

Sorry everyone, just realised this is a Cartopy issue list. (Thought it was Anaconda). Please ignore, I will repost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants