我正在尝试使用conda来管理环境。大多数时候,我可以简单地执行conda install foo
而不是pip install foo
。但是,在某些情况下(很少发生),conda install foo
可能会遇到PackagesNotFoundError
错误。这是为什么?
这是一个具体的例子。 conda install pygal
正常工作。但是,它的一个可选依赖项pygal_maps_world
(用于地图支持)将无法直接通过conda安装。
$ conda install pygal_maps_world
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:
- pygal_maps_world
Current channels:
- 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
- https://repo.anaconda.com/pkgs/pro/osx-64
- https://repo.anaconda.com/pkgs/pro/noarch
- https://conda.anaconda.org/conda-forge/osx-64
- https://conda.anaconda.org/conda-forge/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
我试过基于http://www.pygal.org/en/stable/documentation/types/maps/pygal_maps_world.html的pip install
pygal_maps_world
。然后,导出的ymal文件如下所示:name: foo_env
channels:
- defaults
- conda-forge
dependencies:
- ... some other libraries
- zlib=1.2.11=h1de35cc_3
- zstd=1.3.7=h5bba6e5_0
- pip:
- pygal-maps-world==1.0.2
看一下底部的^^^,它添加了一个
- pip
会话。这是为什么?我们如何确定可以通过conda直接安装哪个库,以及哪个库需要通过pip
? 最佳答案
如页中所述,Anaconda,Conda和Pip从不同的存储库安装。
Pip安装打包为wheel或source分发包的Python软件。
...
Conda是一个跨平台程序包和环境管理器,可从Anaconda存储库以及Anaconda Cloud安装和管理conda程序包。 Conda软件包是二进制文件。
如果要事先手动验证,则可以Understanding Conda and Pip。
或者,如果您以编程方式安装需求,则可以将conda install
包装在try / except块中,而在PackagesNotFoundError
上尝试使用pip install
。
关于python - 什么时候可以使用“conda安装”,什么时候必须使用“pip安装”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56838157/