【问题标题】:When can I use "conda install" and when have to use "pip install"我什么时候可以使用“conda install”,什么时候必须使用“pip install”
【发布时间】:2019-07-01 15:13:51
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: python pip conda


    【解决方案1】:

    Understanding Conda and Pip 页面中所述,Anaconda、Conda 和 Pip 从不同的存储库安装。

    Pip 安装打包为轮子或源代码分发包的 Python 软件。
    ...
    Conda 是一个跨平台的包和环境管理器,可以安装和管理来自 Anaconda 存储库和 Anaconda Cloud 的 conda 包。 Conda 包是二进制文件。

    如果要提前手动验证,可以peruse the repositories

    或者,如果您以编程方式安装需求,您可以将 conda install 包装在 try/except 块中,然后在 PackagesNotFoundError 上尝试 pip install

    【讨论】:

    • 从您提供的链接中,还有这一行:“有时需要一个包,它不能作为 conda 包提供,但可以在 PyPI 上使用,并且可以使用 pip 安装。在这些情况下,尝试同时使用 conda 和 pip 是有意义的。”,我认为这是有道理的。
    猜你喜欢
    • 2016-05-12
    • 2013-04-30
    • 1970-01-01
    • 2011-09-28
    • 2011-02-24
    • 2016-10-22
    • 2020-03-06
    • 1970-01-01
    • 2015-03-02
    相关资源
    最近更新 更多