首页 > 解决方案 > Conda 与操作系统冲突

问题描述

我正在 CentOS 7.2 上设置离线 conda 环境。

但是,当每次尝试创建新环境时,将包作为 Python 作为依赖项(或者甚至在创建一个简单的Python 环境时)。Conda 与 Python 发生冲突,我猜这是指操作系统上可用的 Python。

[root@test01 ~]# conda search python
Loading channels: done
# Name                       Version           Build  Channel             
python                         3.6.3      h6c0c0dc_5  repo_Python         
python                         3.7.1      h0371630_7  repo_Python         
[root@test01 ~]# conda create -n env_test1 python=3.6.3
Collecting package metadata: done
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - python=3.6.3
Use "conda search <package> --info" to see the dependencies for each package.

[root@test01 ~]# conda create -n env_test2 setuptools
Collecting package metadata: done
Solving environment: failed

UnsatisfiableError: The following specifications were found to be in conflict:
  - setuptools
Use "conda search <package> --info" to see the dependencies for each package.

[root@test01 ~]# conda search openssl
Loading channels: done
# Name                       Version           Build  Channel             
openssl                       1.0.2p      h14c3975_0  repo_Python         
openssl                       1.1.1a      h7b6447c_0  repo_Python         
[root@test01 ~]# conda create -n env_test3 openssl
Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /opt/miniconda3/envs/env_test3

  added / updated specs:
    - openssl


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2018.12.5  |                0         123 KB
    libgcc-ng-8.2.0            |       hdf63c60_1         7.6 MB
    openssl-1.1.1a             |       h7b6447c_0         5.0 MB
    ------------------------------------------------------------
                                           Total:        12.8 MB

The following NEW packages will be INSTALLED:

  ca-certificates    repo_Python/linux-64::ca-certificates-2018.12.5-0
  libgcc-ng          repo_Python/linux-64::libgcc-ng-8.2.0-hdf63c60_1
  openssl            repo_Python/linux-64::openssl-1.1.1a-h7b6447c_0


Proceed ([y]/n)? 

有关信息:

# conda info

     active environment : None
            shell level : 0
       user config file : /root/.condarc
 populated config files : /root/.condarc
          conda version : 4.6.2
    conda-build version : 3.17.8
         python version : 3.7.1.final.0
       base environment : /opt/miniconda3  (writable)
           channel URLs : http://test01.<DN>/repo_Python/linux-64
                          http://test01.<DN>/repo_Python/noarch
          package cache : /opt/miniconda3/pkgs
                          /root/.conda/pkgs
       envs directories : /opt/miniconda3/envs
                          /root/.conda/envs
               platform : linux-64
             user-agent : conda/4.6.2 requests/2.21.0 CPython/3.7.1 Linux/3.10.0-514.2.2.el7.x86_64 rhel/7.2 glibc/2.17
                UID:GID : 0:0
             netrc file : None
           offline mode : False

这是我的详细输出:

[root@test01 ~]# conda create -n env_test11 python=3.6.3 -vvv
DEBUG conda.gateways.logging:set_verbosity(148): verbosity set to 3
TRACE conda.gateways.disk.test:file_path_is_writable(23): checking path is writable /opt/miniconda3/pkgs/urls.txt
DEBUG conda.core.package_cache_data:_check_writable(237): package cache directory '/opt/miniconda3/pkgs' writable: True
Solving environment: ...working... DEBUG conda.core.solve:solve_final_state(142): solving prefix /opt/miniconda3/envs/env_test11
  specs_to_remove: frozenset()
  specs_to_add: frozenset({MatchSpec(name=LowerStrMatch('python'), version=VersionSpec('3.6.3.*'))})
  prune: False
TRACE conda.gateways.disk.test:file_path_is_writable(23): checking path is writable /root/.conda/pkgs/urls.txt
DEBUG conda.core.package_cache_data:_check_writable(237): package cache directory '/root/.conda/pkgs' writable: True
DEBUG conda.core.subdir_data:_load(222): Local cache timed out for http://test01.<DN>/repo_Python/noarch at /opt/miniconda3/pkgs/cache/f3c8ac6e.json
DEBUG urllib3.util.retry:from_int(210): Converted retries value: 3 -> Retry(total=3, connect=None, read=None, redirect=None, status=None)
DEBUG urllib3.connectionpool:_new_conn(205): Starting new HTTP connection (1): test01.<DN>:80
DEBUG urllib3.connectionpool:_make_request(393): http://test01.<DN>:80 "GET /repo_Python/noarch/repodata.json HTTP/1.1" 304 0
DEBUG conda.core.subdir_data:fetch_repodata_remote_request(439): 
>>GET /repo_Python/noarch/repodata.json HTTP
> User-Agent: conda/4.5.12 requests/2.21.0 CPython/3.7.1 Linux/3.10.0-514.2.2.el7.x86_64 rhel/7.2 glibc/2.17
> Accept: */*
> Accept-Encoding: gzip, deflate, compress, identity
> Connection: keep-alive
> Content-Type: application/json
> If-Modified-Since: Wed, 06 Feb 2019 14:31:50 GMT
> If-None-Match: "67-5813a961bdfa9"

<<HTTP 304 Not Modified
< Date: Mon, 11 Feb 2019 09:32:22 GMT
< ETag: "67-5813a961bdfa9"
< Keep-Alive: timeout=5, max=100
< Server: Apache/2.4.6 (Red Hat Enterprise Linux)
< Connection: Keep-Alive
< Elapsed: 00:00.003788

DEBUG conda.core.subdir_data:_load(230): 304 NOT MODIFIED for 'http://test01.<DN>/repo_Python/noarch'. Updating mtime and loading from disk
TRACE conda.gateways.disk.update:touch(82): touching path /opt/miniconda3/pkgs/cache/f3c8ac6e.json
DEBUG conda.core.subdir_data:_read_pickled(293): found pickle file /opt/miniconda3/pkgs/cache/f3c8ac6e.q
DEBUG conda.core.subdir_data:_load(222): Local cache timed out for http://test01.<DN>/repo_Python/linux-64 at /opt/miniconda3/pkgs/cache/c8dfbf8f.json
DEBUG urllib3.connectionpool:_make_request(393): http://test01.<DN>:80 "GET /repo_Python/linux-64/repodata.json HTTP/1.1" 304 0
DEBUG conda.core.subdir_data:fetch_repodata_remote_request(439): 
>>GET /repo_Python/linux-64/repodata.json HTTP
> User-Agent: conda/4.5.12 requests/2.21.0 CPython/3.7.1 Linux/3.10.0-514.2.2.el7.x86_64 rhel/7.2 glibc/2.17
> Accept: */*
> Accept-Encoding: gzip, deflate, compress, identity
> Connection: keep-alive
> Content-Type: application/json
> If-Modified-Since: Fri, 08 Feb 2019 10:58:26 GMT
> If-None-Match: "119dc-5815fd6a30c1a"

<<HTTP 304 Not Modified
< Date: Mon, 11 Feb 2019 09:32:22 GMT
< ETag: "119dc-5815fd6a30c1a"
< Keep-Alive: timeout=5, max=99
< Server: Apache/2.4.6 (Red Hat Enterprise Linux)
< Connection: Keep-Alive
< Elapsed: 00:00.001007

DEBUG conda.core.subdir_data:_load(230): 304 NOT MODIFIED for 'http://test01.<DN>/repo_Python/linux-64'. Updating mtime and loading from disk
TRACE conda.gateways.disk.update:touch(82): touching path /opt/miniconda3/pkgs/cache/c8dfbf8f.json
DEBUG conda.core.subdir_data:_read_pickled(293): found pickle file /opt/miniconda3/pkgs/cache/c8dfbf8f.q
DEBUG conda.resolve:bad_installed(763): Checking if the current environment is consistent
DEBUG conda.core.solve:solve_final_state(224): inconsistent dists: None
TRACE conda.core.solve:solve_final_state(262): specs_map with targets: OrderedDict()
DEBUG conda.resolve:get_reduced_index(252): Retrieving packages for: 
  - python=3.6.3
DEBUG conda.resolve:filter_group(277): python: pruned from 2 -> 1
DEBUG conda.resolve:filter_group(277): libgcc-ng: pruned from 2 -> 1
DEBUG conda.resolve:filter_group(277): libstdcxx-ng: pruned from 2 -> 1
DEBUG conda.resolve:filter_group(277): ncurses: pruned from 1 -> 0
DEBUG conda.resolve:gen_clauses(554): gen_clauses returning with clause count: 159
DEBUG conda.resolve:generate_spec_constraints(559): generate_spec_constraints returning with clause count: 159
DEBUG conda.common.logic:sat(435): Invoking SAT with clause count: 160
DEBUG conda.resolve:generate_spec_constraints(559): generate_spec_constraints returning with clause count: 159
DEBUG conda.common.logic:sat(435): Invoking SAT with clause count: 160
DEBUG conda.core.solve:solve_final_state(333): conflicting specs: 
  - python=3.6.3
DEBUG conda.core.solve:solve_final_state(343): final specs to add: 
  - python=3.6.3
DEBUG conda.resolve:solve(879): Solving for: 
  - python=3.6.3
DEBUG conda.resolve:gen_clauses(554): gen_clauses returning with clause count: 159
DEBUG conda.resolve:generate_spec_constraints(559): generate_spec_constraints returning with clause count: 159
DEBUG conda.common.logic:sat(435): Invoking SAT with clause count: 160
DEBUG conda.resolve:generate_spec_constraints(559): generate_spec_constraints returning with clause count: 159
DEBUG conda.common.logic:sat(435): Invoking SAT with clause count: 160
failed
Traceback (most recent call last):
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/exceptions.py", line 819, in __call__
    return func(*args, **kwargs)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/cli/main.py", line 78, in _main
    exit_code = do_call(args, p)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/cli/conda_argparse.py", line 77, in do_call
    exit_code = getattr(module, func_name)(args, parser)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/cli/main_create.py", line 11, in execute
    install(args, parser, 'create')
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/cli/install.py", line 235, in install
    force_reinstall=context.force,
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/core/solve.py", line 518, in solve_for_transaction
    force_remove, force_reinstall)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/core/solve.py", line 451, in solve_for_diff
    final_precs = self.solve_final_state(deps_modifier, prune, ignore_pinned, force_remove)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/core/solve.py", line 344, in solve_final_state
    solution = r.solve(tuple(final_environment_specs))  # return value is List[dist]
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/common/io.py", line 46, in decorated
    return f(*args, **kwds)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/resolve.py", line 917, in solve
    self.find_conflicts(specs)
  File "/opt/miniconda3/lib/python3.7/site-packages/conda/resolve.py", line 244, in find_conflicts
    raise UnsatisfiableError(bad_deps)
conda.exceptions.UnsatisfiableError: The following specifications were found to be in conflict:
  - python=3.6.3
Use "conda info <package>" to see the dependencies for each package.

标签: pythoncentosconda

解决方案


我终于发现出了什么问题!问题实际上很简单:当我的仓库中只有 ncurses- 6.1- he6710b0 _1.tar.bz2时,创建一个新的 python 环境需要 ncurses- 6.1- hf484d3e _0.tar.bz2 ...

一旦我在我的仓库中得到那个子版本,一切都很好!

我认为错误消息有点令人困惑,可以改进。


推荐阅读