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

package conflict messages not understandable #9707

Closed
Tracked by #11555
notestaff opened this issue Feb 25, 2020 · 19 comments
Closed
Tracked by #11555

package conflict messages not understandable #9707

notestaff opened this issue Feb 25, 2020 · 19 comments
Labels
solver::messaging pertains to the solver's messaging solver pertains to the solver source::community catch-all for issues filed by community members stale::closed [bot] closed after being marked as stale stale [bot] marked as stale due to inactivity type::feature request for a new feature or capability

Comments

@notestaff
Copy link

Current Behavior

Messages printed when conflicts prevent creating an environment show what does not seem like a conflict:

Package xz conflicts for:
dxpy=0.290.1 -> python -> xz[version='5.0.*|5.2.*|>=5.2.3,<5.3.0a0|>=5.2.4,<5.3.0a0|>=5.2.4,<6.0a0|>=5.2.3,<6.0a0']
git-annex=7.20200219 -> libxml2[version='>=2.9.10,<2.10.0a0'] -> xz[version='>=5.2.4,<5.3.0a0']

Why wouldn't e.g. xz=5.2.4 satisfy these constraints?
Also, the conflict messages printed are non-deterministic, showing different conflicts every time the command to create the environment is re-run.

Steps to Reproduce

(conda-smithy-200224-env) 10:58  [git-annex-feedstock] $ conda create --override-channels -c conda-forge -c bioconda -c defaults -n hmm-env git-annex=7.20200219 dxpy=0.290.1
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package xz conflicts for:
dxpy=0.290.1 -> python -> xz[version='5.0.*|5.2.*|>=5.2.3,<5.3.0a0|>=5.2.4,<5.3.0a0|>=5.2.4,<6.0a0|>=5.2.3,<6.0a0']
git-annex=7.20200219 -> libxml2[version='>=2.9.10,<2.10.0a0'] -> xz[version='>=5.2.4,<5.3.0a0']

Expected Behavior

Print a message that will enable me to fix the conflict.

Environment Information

`conda info`

     active environment : conda-smithy-200224-env
    active env location : /ilya/miniconda3/envs/conda-smithy-200224-env
            shell level : 11
       user config file : /home/ilya/.condarc
 populated config files : /home/ilya/.condarc
          conda version : 4.8.2
    conda-build version : 3.18.9
         python version : 3.7.3.final.0
       virtual packages : __glibc=2.26
       base environment : /ilya/miniconda3  (writable)
           channel URLs : https://conda.anaconda.org/broad-viral/linux-64
                          https://conda.anaconda.org/broad-viral/noarch
                          https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://conda.anaconda.org/bioconda/linux-64
                          https://conda.anaconda.org/bioconda/noarch
                          https://repo.anaconda.com/pkgs/main/linux-64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/linux-64
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://conda.anaconda.org/notestaff/linux-64
                          https://conda.anaconda.org/notestaff/noarch
                          https://conda.anaconda.org/r/linux-64
                          https://conda.anaconda.org/r/noarch
          package cache : /ilya/miniconda3/pkgs
                          /home/ilya/.conda/pkgs
       envs directories : /ilya/miniconda3/envs
                          /home/ilya/.conda/envs
               platform : linux-64
             user-agent : conda/4.8.2 requests/2.23.0 CPython/3.7.3 Linux/4.14.165-133.209.amzn2.x86_64 amzn/2 glibc/2.26
                UID:GID : 1002:1002
             netrc file : None
           offline mode : False

`conda config --show-sources`

(conda-smithy-200224-env) 11:00  [git-annex-feedstock] $ conda config --show-sources
==> /home/ilya/.condarc <==
channels:
  - broad-viral
  - conda-forge
  - bioconda
  - defaults
  - notestaff
  - r
report_errors: False

`conda list --show-channel-urls`

(conda-smithy-200224-env) 11:00  [git-annex-feedstock] $ conda list --show-channel-urls
# packages in environment at /ilya/miniconda3/envs/conda-smithy-200224-env:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       0_gnu    conda-forge
beautifulsoup4            4.8.2                    py38_0    conda-forge
blinker                   1.4                        py_1    conda-forge
bzip2                     1.0.8                h516909a_2    conda-forge
ca-certificates           2019.11.28           hecc5488_0    conda-forge
certifi                   2019.11.28               py38_0    conda-forge
cffi                      1.13.2           py38h8022711_0    conda-forge
chardet                   3.0.4                 py38_1003    conda-forge
conda                     4.8.2                    py38_0    conda-forge
conda-build               3.18.11                  py38_0    conda-forge
conda-forge-pinning       2020.02.20                    0    conda-forge
conda-package-handling    1.6.0            py38h516909a_1    conda-forge
conda-smithy              3.6.8                      py_0    conda-forge
cryptography              2.8              py38h72c5cf5_1    conda-forge
curl                      7.68.0               hf8cf82a_0    conda-forge
deprecated                1.2.7                      py_0    conda-forge
expat                     2.2.9                he1b5a44_2    conda-forge
filelock                  3.0.10                     py_0    conda-forge
gettext                   0.19.8.1          hc5be6a0_1002    conda-forge
git                       2.25.0          pl526hce37bd2_0    conda-forge
gitdb                     4.0.2                      py_0    conda-forge
gitpython                 3.1.0                      py_0    conda-forge
glob2                     0.7                        py_0    conda-forge
icu                       64.2                 he1b5a44_1    conda-forge
idna                      2.9                        py_1    conda-forge
isodate                   0.6.0                      py_1    conda-forge
jinja2                    2.11.1                     py_0    conda-forge
krb5                      1.16.4               h2fd8d38_0    conda-forge
ld_impl_linux-64          2.33.1               h53a641e_8    conda-forge
libarchive                3.3.3             hc47fbbf_1007    conda-forge
libcurl                   7.68.0               hda55be3_0    conda-forge
libedit                   3.1.20170329      hf8c457e_1001    conda-forge
libffi                    3.2.1             he1b5a44_1006    conda-forge
libgcc-ng                 9.2.0                h24d8f2e_2    conda-forge
libgomp                   9.2.0                h24d8f2e_2    conda-forge
libiconv                  1.15              h516909a_1005    conda-forge
liblief                   0.9.0                hf8a498c_1    conda-forge
libssh2                   1.8.2                h22169c7_2    conda-forge
libstdcxx-ng              9.2.0                hdf63c60_2    conda-forge
libxml2                   2.9.10               hee79883_0    conda-forge
lz4-c                     1.8.3             he1b5a44_1001    conda-forge
lzo                       2.10              h14c3975_1000    conda-forge
markupsafe                1.1.1            py38h516909a_0    conda-forge
msrest                    0.6.10                     py_0    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
oauthlib                  3.0.1                      py_0    conda-forge
openssl                   1.1.1d               h516909a_0    conda-forge
patchelf                  0.10                 he1b5a44_0    conda-forge
pcre                      8.44                 he1b5a44_0    conda-forge
perl                      5.26.2            h516909a_1006    conda-forge
pip                       20.0.2                     py_2    conda-forge
pkginfo                   1.5.0.1                    py_0    conda-forge
psutil                    5.7.0            py38h516909a_0    conda-forge
py-lief                   0.9.0            py38he1b5a44_1    conda-forge
pycosat                   0.6.3           py38h516909a_1002    conda-forge
pycparser                 2.19                       py_2    conda-forge
pycrypto                  2.6.1           py38h516909a_1003    conda-forge
pygithub                  1.43.6                   py38_0    conda-forge
pyjwt                     1.7.1                      py_0    conda-forge
pyopenssl                 19.1.0                     py_1    conda-forge
pysocks                   1.7.1                    py38_0    conda-forge
python                    3.8.1                h357f687_2    conda-forge
python-libarchive-c       2.9                      py38_0    conda-forge
pytz                      2019.3                     py_0    conda-forge
pyyaml                    5.3              py38h516909a_0    conda-forge
readline                  8.0                  hf8c457e_0    conda-forge
requests                  2.23.0                   py38_0    conda-forge
requests-oauthlib         1.2.0                      py_0    conda-forge
ripgrep                   11.0.2               h516909a_3    conda-forge
ruamel.yaml               0.16.6           py38h516909a_0    conda-forge
ruamel.yaml.clib          0.2.0            py38h516909a_0    conda-forge
ruamel_yaml               0.15.80         py38h516909a_1000    conda-forge
setuptools                45.2.0                   py38_0    conda-forge
six                       1.14.0                   py38_0    conda-forge
smmap                     3.0.1                      py_0    conda-forge
soupsieve                 1.9.4                    py38_0    conda-forge
sqlite                    3.30.1               hcee41ef_0    conda-forge
tk                        8.6.10               hed695b0_0    conda-forge
toolz                     0.10.0                     py_0    conda-forge
tqdm                      4.43.0                     py_0    conda-forge
urllib3                   1.25.7                   py38_0    conda-forge
vsts-python-api           0.1.22                     py_0    conda-forge
wheel                     0.34.2                     py_1    conda-forge
wrapt                     1.12.0           py38h516909a_0    conda-forge
xz                        5.2.4             h14c3975_1001    conda-forge
yaml                      0.2.2                h516909a_1    conda-forge
zlib                      1.2.11            h516909a_1006    conda-forge
zstd                      1.4.4                h3b9ef0a_1    conda-forge

@notestaff
Copy link
Author

Related issues: #7771 #9136

@csosborn
Copy link
Contributor

I was just on my way here to file a similar issue, but found this one first. I too have been fighting with solver issues, and the messages leave me unable to tell if the solver is misbehaving or if I'm making an error somewhere.

Here are a couple of very typical examples:

Package wheel conflicts for:
python=3.6 -> pip -> wheel
pip=19.3.1 -> wheel

Package boto3 conflicts for:
moto==1.3.14 -> boto3[version='>=1.9.201']
boto3=1.11.6

What is that trying to tell me? Is there a reference somewhere that could help in interpreting these messages?

@kalefranz kalefranz added source::community catch-all for issues filed by community members solver pertains to the solver solver::messaging pertains to the solver's messaging type::bug describes erroneous operation, use severity::* to classify the type type::feature request for a new feature or capability and removed type::bug describes erroneous operation, use severity::* to classify the type labels Apr 28, 2020
@floriandeboissieu
Copy link

same here on Ubuntu 18.04, conda 4.8.4:

$ conda create -n geocube -v -c conda-forge python=3.7 geocube
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                                                                                                      
Traceback (most recent call last):
  File "/home/test/anaconda3/lib/python3.7/site-packages/conda/exceptions.py", line 1079, in __call__
return func(*args, **kwargs)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/cli/main.py", line 84, in _main
exit_code = do_call(args, p)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/cli/conda_argparse.py", line 83, in do_call
return getattr(module, func_name)(args, parser)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/cli/main_create.py", line 41, in execute
install(args, parser, 'create')
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/cli/install.py", line 292, in install
raise e
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/cli/install.py", line 265, in install
should_retry_solve=(_should_retry_unfrozen or repodata_fn != repodata_fns[-1]),
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 117, in solve_for_transaction
should_retry_solve)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 158, in solve_for_diff
force_remove, should_retry_solve)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 281, in solve_final_state
ssc = self._run_sat(ssc)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/common/io.py", line 88, in decorated
return f(*args, **kwds)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 818, in _run_sat
should_retry_solve=ssc.should_retry_solve
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/common/io.py", line 88, in decorated
return f(*args, **kwds)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/resolve.py", line 1321, in solve
self.find_conflicts(specs, specs_to_add, history_specs)
File "/home/test/anaconda3/lib/python3.7/site-packages/conda/resolve.py", line 352, in find_conflicts
raise UnsatisfiableError(bad_deps, strict=strict_channel_priority)
conda.exceptions.UnsatisfiableError: The following specifications were found to be incompatible with each other:
  
  Output in format: Requested package -> Available versions

Package python conflicts for:
geocube -> python=3
python=3.7
geocube -> appdirs -> python[version='2.7.*|3.5.*|3.6.*|3.4.*|>=3.6|>=3.5|>=3.6,<3.7.0a0|>=2.7,<2.8.0a0|>=3.5,<3.6.0a0|>=3.8,<3.9.0a0|>=3.7,<3.8.0a0|>=3.5.3']

Nothing seems incompatible though...

@djbarker
Copy link

djbarker commented Jan 21, 2021

Has there been any progress on this? I run into this issue often and it's cost me lots of time recently.
Today I ran into this beauty:

Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: / 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions

Ah, so it found conflicts but no specifications were found to be incompatible with each other? Not even any false positives like usual. Fantastic.

@dreavjr
Copy link

dreavjr commented Jan 25, 2021

+1 on this, because it's terribly frustrating when all listed conflicts don't look like conflicts at all:

Package scipy conflicts for:
scikit-image -> scipy[version='>=0.17|>=0.19|>=0.9']
scikit-learn -> scipy

or

Package dataclasses conflicts for:
pytorch -> dataclasses
pytorch-lightning -> pytorch[version='>=1.3'] -> dataclasses

@mathieuboudreau
Copy link

How can there be no dev available to explain this confusing behaviour? Is there no documentation on this?

@mathieuboudreau
Copy link

Package unittest2 conflicts for:
h5py=2.10.0 -> unittest2
keras-applications -> h5py -> unittest2
keras -> h5py -> unittest2

How can this throw a conflict?

@rohan-shah
Copy link

I just spent all day on this kind of rubbish, and have got absolutely no-where.

Clearly a lot of effort has gone into conda, but unfortunately it seems kind of useless for anything non-trivial.....

@a019647
Copy link

a019647 commented Apr 20, 2021

Yes. So redundant given all the other comments. Why has nothing been done?

@dbl001
Copy link

dbl001 commented Jun 4, 2021

Same issue.
$ condo update --all #runs with no errors.
$ conda install jupyterlab # has thousands of conflicts

@loikein
Copy link

loikein commented Jun 10, 2021

My life is very miserable now.
  Package pip conflicts for:
  sphinx -> python[version='>=3.6'] -> pip
  scipy -> python[version='>=3.9,<3.10.0a0'] -> pip
  pytest=5.4.3 -> python[version='>=3.8,<3.9.0a0'] -> pip
  temfpy[version='>=1.1'] -> python -> pip
  numpydoc -> python[version='>=3.5'] -> pip
  pytest-flake8 -> python -> pip
  jupyterlab -> python[version='>=3.6'] -> pip
  pytest-sugar -> python -> pip
  nbsphinx -> python[version='>=3.6'] -> pip
  matplotlib-base -> python[version='>=3.7,<3.8.0a0'] -> pip
  pip
  statsmodels -> python[version='>=3.6,<3.7.0a0'] -> pip
  numpy=1.18 -> python[version='>=3.6,<3.7.0a0'] -> pip
  pytest-black -> python[version='>=3.6'] -> pip
  seaborn -> python[version='>=3.6'] -> pip
  black[version='>=20.8b0'] -> python[version='>=3.6'] -> pip
  sphinx_rtd_theme -> python -> pip
  chaospy -> python[version='>=3.5'] -> pip
  pre-commit -> python[version='>=3.9,<3.10.0a0'] -> pip
  pandas -> python[version='>=3.7,<3.8.0a0'] -> pip
  pytest-cov -> python -> pip
  pdbpp -> python -> pip
  python=3.8 -> pip
  hypothesis -> python[version='>=3.6'] -> pip
  rpy2==2.9.4 -> python[version='>=3.7,<3.8.0a0'] -> pip
  ipykernel -> python[version='>=3.9,<3.10.0a0'] -> pip
  sphinxcontrib-bibtex -> python[version='>=3.6'] -> pip
  numba -> python[version='>=3.9,<3.10.0a0'] -> pip

Update: for anyone who is looking for a conda alternative, mamba works flawlessly.

@jezdez
Copy link
Member

jezdez commented Nov 4, 2021

Hey all, just to give some context why this hasn't been obvious, the previous conda maintainers left Anaconda in 2020 and a new group of people have started earlier this year (including me). We're currently in the process to port the mamba/libsolv solver to conda which should improve the user experience drastically in many areas, just like reporting of conflicts. More on that soon!

@jezdez jezdez added this to the 5.0.0 milestone Nov 4, 2021
@EricAtORS
Copy link

Just my luck. I'm trying to find an issue where a new package is causing thousands of lines of conflicts and man, I don't know where to start. I hope 5.0.0 comes out soon to resolve this.

@christianbrodbeck
Copy link

@EricAtORS have you tried mamba?

@EricAtORS
Copy link

@EricAtORS have you tried mamba?

Very interesting project.
I did not. I'll look in to it. Right now, I'm using conda-devenv and I'd be curious to see how we could migrate to mamba if it works better.

@ibaris
Copy link

ibaris commented Nov 30, 2021

I cant even install mamba due to frustrating conflicts. Why don't they finally add an "override" function for such errors and save so many users from such a waste of time.

@nog642
Copy link

nog642 commented Dec 17, 2021

I created a fresh environment with conda create --name plots -c conda-forge python=3.9, then tried to run conda install -c conda-forge mayavi.

It tried to resolve conflicts for well over an hour, then eventually printed a list of conflicts so long I couldn't even scroll to the top of it in my terminal.

Problem is most of the conflicts don't even make sense. I've got hundreds of examples of this issue now. Based on #9136 it seems these are probably just missing the requirement actually causing the conflict.

Here is the output (as I explained the top is cut off):
https://gist.github.com/nog642/e8257da3ce142b7e77df968d042d1b7c

Edit: Seems my specific issue was probably that the second command was run in the base envrionment, not the new one. The point about the confusing conflict messages remains though.

@maphew
Copy link

maphew commented Feb 28, 2022

For me the solution was to use conda create and conda install wtih --override-channels -c defaults, as per suggestion in #10123

@travishathaway travishathaway removed this from the 5.0.0 milestone Oct 26, 2022
@github-actions
Copy link

Hi there, thank you for your contribution!

This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically if no further activity occurs.

If you would like this issue to remain open please:

  1. Verify that you can still reproduce the issue at hand
  2. Comment that the issue is still reproducible and include:
    - What OS and version you reproduced the issue on
    - What steps you followed to reproduce the issue

NOTE: If this issue was closed prematurely, please leave a comment.

Thanks!

@github-actions github-actions bot added the stale [bot] marked as stale due to inactivity label Oct 27, 2023
@github-actions github-actions bot added the stale::closed [bot] closed after being marked as stale label Nov 27, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Nov 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
solver::messaging pertains to the solver's messaging solver pertains to the solver source::community catch-all for issues filed by community members stale::closed [bot] closed after being marked as stale stale [bot] marked as stale due to inactivity type::feature request for a new feature or capability
Projects
Status: 🏁 Done
Development

No branches or pull requests