管理虚拟包#

“虚拟”包被注入到 conda 求解器中,以允许真实包依赖于系统上存在的功能,而这些功能无法由 conda 直接管理,例如系统驱动程序版本或 CPU 功能。 虚拟包不是真实包,不会通过 conda list 显示。 相反,conda 运行一小段代码来检测与包对应的系统功能的存在与否。 当前支持的虚拟包列表包括

  • __cuda: 显示驱动程序支持的 CUDA 最大版本。

  • __osx: OSX 版本(如果适用)。

  • __glibc: 操作系统支持的 glibc 版本。

  • __linux: 在 Linux 上运行时可用。

  • __unix: 在 OSX 或 Linux 上运行时可用。

  • __win: 在 Win 上运行时可用。

  • __conda: 用于求解的 conda 版本。

其他虚拟包将在未来的 conda 版本中添加。 这些包在包名称中以双下划线开头表示。

注意

请注意,从 22.11.0 版本开始,虚拟包 被实现为 conda 插件

列出检测到的虚拟包#

使用终端进行以下步骤。

要查看检测到的虚拟包列表,请运行

conda info

如果检测到包,您将看到它在 virtual packages 部分列出,如本例所示

    active environment : base
   active env location : /Users/demo/dev/conda/devenv
           shell level : 1
      user config file : /Users/demo/.condarc
populated config files : /Users/demo/.condarc
         conda version : 4.6.3.post8+8f640d35a
   conda-build version : 3.17.8
        python version : 3.7.2.final.0
      virtual packages : __cuda=10.0
      base environment : /Users/demo/dev/conda/devenv (writable)
          channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
                         https://repo.anaconda.com/pkgs/main/noarch
                         https://repo.anaconda.com/pkgs/free/osx-64
                         https://repo.anaconda.com/pkgs/free/noarch
                         https://repo.anaconda.com/pkgs/r/osx-64
                         https://repo.anaconda.com/pkgs/r/noarch
         package cache : /Users/demo/dev/conda/devenv/pkgs
                         /Users/demo/.conda/pkgs
      envs directories : /Users/demo/dev/conda/devenv/envs
                         /Users/demo/.conda/envs
              platform : osx-64
            user-agent : conda/4.6.3.post8+8f640d35a requests/2.21.0 CPython/3.7.2 Darwin/17.7.0 OSX/10.13.6
               UID:GID : 502:20
            netrc file : None
          offline mode : False

覆盖检测到的包#

为了进行故障排除,可以使用环境变量覆盖虚拟包检测。 支持的变量包括

  • CONDA_OVERRIDE_CUDA - CUDA 版本号或设置为 "" 表示未检测到 CUDA。

  • CONDA_OVERRIDE_OSX - OSX 版本号或设置为 "" 表示未检测到 OSX。

  • CONDA_OVERRIDE_GLIBC - GLIBC 版本号或设置为 "" 表示没有 GLIBC。 这仅适用于 Linux。