【问题标题】:conda equivalent of pip installconda 相当于 pip install
【发布时间】:2019-07-04 05:24:20
【问题描述】:

如果我有setup.py的目录,在pip,我可以在pip install .目录下安装包。

如果我使用 conda 会怎样?

conda install .conda 找到一个名为 dot 的包。

【问题讨论】:

  • 您是想简单地安装该软件包,还是希望您的软件包作为conda 软件包可用?也就是说,您是在创建东西、从其他地方安装东西,还是......?
  • @ChrisLarson 我只想安装一个包,我碰巧听说最好不要混合使用condapip。该包在conda 中不可用,但只能通过源代码获得。
  • conda 本身建议您将 pip 用于非conda 包。在conda 中正确使用pip,请参阅下面的两个答案。请注意,在我的回答中,我指出这是处理非conda 包的官方推荐和最佳实践方式。
  • 虽然conda install . 失败了,但我碰巧发现conda install conda-4.6.3-py37_0.tar.bz2 有效。

标签: python pip conda miniconda


【解决方案1】:

conda 包的结构与标准 python 包不同。因此,官方推荐的最佳实践方法是使用conda 在激活的conda 环境中安装pip,并使用它来安装标准包:

conda install pip

注意:您希望在conda 包可用时使用它们,因为它们在conda 环境中比非conda 包具有更多功能。

conda install pip 将在当前激活的conda 环境中安装 pip,并确保它与conda 集成,例如,conda list 将包含使用pip 安装的任何包。

注意conda update 之类的命令将忽略 pip 已安装的软件包,因为它只检查 conda channels 是否有可用更新,因此它们仍然需要使用 pip 进行更新.请参阅此问题/答案讨论:

Does conda update packages from pypi installed using pip install?

注意:请参阅下面关于conda 4.6 实验性处理包的@kalefranz 评论。

如果您有兴趣创建自己的 conda 包,请查看此问题/第一个答案以获得很好的总结:

How to install my own python module (package) via conda and watch its changes

如果您只是想安装非conda 软件包,使用pip 是正确且预期的方式。

【讨论】:

  • Conda 4.6 具有实验性功能,可实现与 pip 安装包的互操作性。使用conda config --set pip_interop_enabled true。可以由 conda“管理”(即删除)的包可以更新以满足当前的解决方案。可管理的软件包通常是从轮子上安装的。无法管理的包将固定环境,直到通过其他方式将其删除。无法管理的包的一个示例是使用 pip install -e 的“可编辑”安装。
  • “你想在 conda 包可用时使用它们”,我们如何实现这一点? conda 可以从 setup.py 读取并尝试安装可用的依赖项,然后我们可以使用 pip install . 来完成其余的工作吗?还是我们应该为此目的创建 conda 元文件?
【解决方案2】:

您可以在conda 环境中使用pip install

只需使用以下方式激活您的环境:

$ conda activate myenvironment

并使用pip install . 将您的包安装到环境目录中。

编辑:正如Chris Larson 在另一个答案中指出的那样,您应该使用

在环境中安装 pip
$ conda install pip

为了正确注册包。

【讨论】:

    【解决方案3】:

    如果我有一个whl 文件,我可以使用pip install xxx.whl 来安装它。

    来自documentation,来自本地文件的conda install也可以,但文件应该是tarball文件,即.tar.bz2文件。

    conda install /package-path/package-filename.tar.bz2 有效。如果我有多个 tarball,我可以tar 获取.tar 文件,然后conda install /packages-path/packages-filename.tar 将包安装在其中。

    【讨论】:

      猜你喜欢
      • 2018-12-02
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 2017-07-21
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      相关资源
      最近更新 更多