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

Not installable with strict priority? LibMambaUnsatisfiableError: Encountered problems while solving #699

Open
pmlandwehr opened this issue Jun 3, 2024 · 1 comment

Comments

@pmlandwehr
Copy link

I've been trying to get quetz working with a base miniconda environment, but am getting errors during the basic setup when I have a strict environment required. This might be due to my installing with conda and not mamba, but since the two should be functionally identical when using libmamba as the solver it seems kind of mysterious. (Perhaps this is just a "bug" in that the README could be clarified for folks like myself.)

conda info:

     active environment : base
    active env location : /home/pmlandwehr/anaconda3
            shell level : 1
       user config file : /home/pmlandwehr/.condarc
 populated config files : /home/pmlandwehr/.condarc
          conda version : 24.5.0
    conda-build version : not installed
         python version : 3.12.3.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=sandybridge
                          __conda=24.5.0=0
                          __cuda=11.4=0
                          __glibc=2.35=0
                          __linux=6.5.0=0
                          __unix=0=0
       base environment : /home/pmlandwehr/anaconda3  (writable)
      conda av data dir : /home/pmlandwehr/anaconda3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/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
          package cache : /home/pmlandwehr/anaconda3/pkgs
                          /home/pmlandwehr/.conda/pkgs
       envs directories : /home/pmlandwehr/anaconda3/envs
                          /home/pmlandwehr/.conda/envs
               platform : linux-64
             user-agent : conda/24.5.0 requests/2.31.0 CPython/3.12.3 Linux/6.5.0-35-generic ubuntu/22.04.4 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8 aau/0.4.4 c/. s/. e/.
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

My .condarc:

channels:
  - conda-forge
  - defaults
channel_priority: strict

In this case, I get this error when running:

$ conda env create -f environment.yml
Channels:
 - https://repo.mamba.pm/conda-forge
 - conda-forge
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed
Channels:
 - https://repo.mamba.pm/conda-forge
 - conda-forge
 - defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

LibMambaUnsatisfiableError: Encountered problems while solving:
  - package typer-0.9.0-py39h06a4308_0 is excluded by strict repo priority
  - package pydantic-2.0.1-py310h2372a71_0 requires typing-extensions >=4.6.1, but none of the providers can be installed

If I remove the strict restriction, the conda install reaches its pip section and then fails:

Installing pip dependencies: | Ran pip subprocess with arguments:
['/home/pmlandwehr/anaconda3/envs/quetz/bin/python', '-m', 'pip', 'install', '-U', '-r', '/home/pmlandwehr/repos/quetz/condaenv.z6h4jy00.requirements.txt', '--exists-action=b']
Pip subprocess output:

Pip subprocess error:
ERROR: Exception:
Traceback (most recent call last):
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
             ^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 247, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 326, in run
    session = self.get_default_session(options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 98, in get_default_session
    self._session = self.enter_context(self._build_session(options))
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 125, in _build_session
    session = PipSession(
              ^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/network/session.py", line 343, in __init__
    self.headers["User-Agent"] = user_agent()
                                 ^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/network/session.py", line 175, in user_agent
    setuptools_dist = get_default_environment().get_distribution("setuptools")
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
    return next(matches, None)
           ^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
    matches = (
              ^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
    for dist in self._iter_distributions():
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 176, in _iter_distributions
    for dist in finder.find_eggs(location):
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 144, in find_eggs
    yield from self._find_eggs_in_dir(location)
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 111, in _find_eggs_in_dir
    from pip._vendor.pkg_resources import find_distributions
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2164, in <module>
    register_finder(pkgutil.ImpImporter, find_on_path)
                    ^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/__main__.py", line 31, in <module>
    sys.exit(_main())
             ^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/main.py", line 70, in main
    return command.main(cmd_args)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 101, in main
    return self._main(args)
           ^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 216, in _main
    self.handle_pip_version_check(options)
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 179, in handle_pip_version_check
    session = self._build_session(
              ^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 125, in _build_session
    session = PipSession(
              ^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/network/session.py", line 343, in __init__
    self.headers["User-Agent"] = user_agent()
                                 ^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/network/session.py", line 175, in user_agent
    setuptools_dist = get_default_environment().get_distribution("setuptools")
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 188, in get_distribution
    return next(matches, None)
           ^^^^^^^^^^^^^^^^^^^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 183, in <genexpr>
    matches = (
              ^
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/base.py", line 612, in iter_all_distributions
    for dist in self._iter_distributions():
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 176, in _iter_distributions
    for dist in finder.find_eggs(location):
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 144, in find_eggs
    yield from self._find_eggs_in_dir(location)
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py", line 111, in _find_eggs_in_dir
    from pip._vendor.pkg_resources import find_distributions
  File "/home/pmlandwehr/anaconda3/envs/quetz/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2164, in <module>
    register_finder(pkgutil.ImpImporter, find_on_path)
                    ^^^^^^^^^^^^^^^^^^^
AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?

failed

CondaEnvException: Pip failed

Thanks for yr. advice!

@pmlandwehr pmlandwehr changed the title Not installable with strict or conda? LibMambaUnsatisfiableError: Encountered problems while solving Not installable with strict priority? LibMambaUnsatisfiableError: Encountered problems while solving Jun 3, 2024
@pmlandwehr
Copy link
Author

After some further research, the AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'? is due to ImpImporter being removed in python 3.12. It can apparently be fixed by reinstalling and upgrading pip. I have opted to fix it by requiring python to be less than 3.12. With this restriction quetz appears to install correctly.

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

1 participant