软件包未找到错误: 以下软件包在当前渠道中不可用:

264

我对Python有些陌生,虽然在许多项目中使用过它,但实际上从未需要偏离其标准设置。我试图安装一些新的包以获取完成大学任务所需的功能。当我尝试安装时,会出现以下错误:

(base) C:\Anaconda2\Jupyter>conda install -c python-control -c cyclus slycot control
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:

  - slycot
  - control

Current channels:

  - https://conda.anaconda.org/python-control/win-64
  - https://conda.anaconda.org/python-control/noarch
  - https://conda.anaconda.org/cyclus/win-64

...

和上面那个类似的频道还有很多。

我一直在寻找解决方案,但没有找到什么实质性的东西。我看到这可能是Windows的问题,因为我正在使用它。除此之外,我不知道发生了什么。

请记住,我真的不理解频道和软件包是如何工作的,所以任何关于这方面的见解也将是很好的。


13
注意:如果你正在阅读此内容,请不要将基础环境用作所有项目的环境,实际上最好不要使用它。 - AMC
这可能并不能直接回答问题,因此我将其作为评论添加。在我的情况下,我遇到了相同的错误,但我的根本原因是不同的,我的需求文件中的包名称不正确。它应该是“scikit_learn”,但实际上是“scikit_learn”。因此,请确保验证包名称。 - ManojKumar
9个回答

314

尝试使用以下命令将conda-forge通道添加到频道列表中:
conda config --append channels conda-forge。该命令告诉conda在搜索软件包时还要查看conda-forge通道。然后,您可以使用conda install slycot control轻松安装这两个软件包。

频道基本上是人们用来托管软件包的服务器,而社区驱动的conda-forge通常是找不到标准频道中的软件包时的好去处。我检查了一下,发现slycotcontrol都可以在那里找到。


8
我尝试了你建议的方法,但出现了以下错误:环境解决失败找不到以下软件包:
  • slycot
当前可用的渠道:
  • https://repo.continuum.io/pkgs/main/win-64
  • https://repo.continuum.io/pkgs/main/noarch
在底部还有更多与conda-forge相关的链接。 我在一些论坛上看到 slycot 目前仅支持 Linux 和 OSX 系统。然而,我不确定这些说法的真实性。
- Sunafegon
2
如果这个软件包不受Windows支持,恐怕你就没办法了。我能想到的另一种方法是尝试通过pip安装它(pip install ...)。这将会在你的conda目录中安装该软件包,但使用Python内置的软件包管理器。有时候只能通过pip来获取某些软件包。 - Max S.
我不得不添加 conda config --add channels loopbio 来安装 gtk2 (https://github.com/loopbio/gtk2-feedstock)。 - ezChx
8
通常最好只使用 conda config --append 添加频道,这会将其优先级放在标准频道之下,并且仅在其他地方找不到软件包时才会查找该频道。使用 --add 会将其置于频道列表顶部,因此conda将尽可能从自定义频道安装尽可能多的软件包... 根据我的经验,这可能会变得混乱。 - Max S.
1
运行得非常完美。在创建环境和安装要求之前,请运行@MaxS的解决方案:conda create --name <env_name> --file <requirements.txt> - datalifenyc
显示剩余4条评论

57

你尝试过吗:

pip install <package>
或者
conda install -c conda-forge <package>

7
命令: `conda install -c conda-forge `对我而言比命令: `conda config --append channels conda-forge`更有效,因为后者会导致conda陷入无限的“解决环境”循环中。 - algoquant

11

谢谢,Max S. 对我来说conda-forge也起作用了。

Anaconda-Jupyter Notebook上的scikit-learn。

在Google VM实例上安装在Ubuntu上的anaconda中将我的scikit-learn从0.19.1升级到0.19.2:

在终端中运行以下命令:

首先,检查可用的带版本的软件包

conda list    
它将在输出中显示软件包及其已安装版本:
scikit-learn              0.19.1           py36hedc7406_0  

升级到0.19.2 2018年7月发布版本。

conda config --append channels conda-forge
conda install scikit-learn=0.19.2

现在检查安装的版本是否正确?

conda list 

输出结果为:

scikit-learn              0.19.2          py36_blas_openblasha84fab4_201  [blas_openblas]  conda-forge

注意:如果您正在使用Anaconda或Miniconda,请不要使用pip命令

我尝试了以下命令:

!conda update conda 
!pip install -U scikit-learn
它将安装所需的包并在conda list中显示,但尝试导入该包时它将无法工作。在http://scikit-learn.org/stable/install.html网站上提到: 警告:升级或卸载使用Anaconda或conda安装的Scikit-learn时,不应使用pip。

8
我尝试安装fancyimpute包进行数据插补,但是一直没有成功。但是当我尝试下面的命令时,它成功地被安装了:
命令:
conda update conda
conda update anaconda
pip install fancyimpute 

我尝试使用命令conda install fancyimpute,但它没有起作用。


这个答案只与你环境中的特定软件包在特定时间点有关,不太可能对其他人有任何好处。 - AMC

8

4

我曾经也遇到过同样的问题,但是通过以下方法解决了它:

conda install -c conda-forge pysoundfile

在导入时

import soundfile 

5
这个回答只与你环境中特定的软件包在某个特定时间点有关,不太可能对其他人有任何好处。 - AMC

3

2

在使用非conda包(名为matplotlib-venn)时,我遇到了相同的问题。简单的命令如conda install <package>conda install -c conda-forge <package>都会导致PackagesNotFoundError错误。

然而,我意识到如果你在conda-forge网站 https://anaconda.org/conda-forge 上搜索你的包,它会列出一系列你可以尝试的命令。对我来说,第二个命令conda install -c conda-forge/label/gcc7 matplotlib-venn成功地解决了问题。

注意:你可能需要通过使用conda config --append channels conda-forgeconda-forge添加到你的频道列表中。


0

如果您的基本conda环境处于活动状态...

  • 在这种情况下,"(base)" 很可能会显示在您的终端命令提示符的开头。

...并且pip已安装在您的基本环境中...

  • 可以通过以下方式检查:$ conda list | grep pip

...然后通过$ pip install <packagename>简单地安装未找到的软件包。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接