conda 安装的等价于 pip install 命令

10
如果我有一个带有setup.py的目录,在pip中,我可以在该目录中使用pip install .安装包。
如果我使用conda呢? conda install .会让conda查找一个名为dot的包。

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

9

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进行更新。请参阅此问题/答案讨论:

Conda是否会更新使用pip install从pypi安装的软件包?

注意:有关conda 4.6实验性处理软件包的详细信息,请参见@kalefranz下面的评论。

如果你想创建自己的conda软件包,可以参考这个问题/第一个回答,了解一下详细信息: 如何通过conda安装自己的Python模块(软件包)并查看其更改 如果你只是想安装非conda软件包,使用pip是正确且预期的方法。

1
Conda 4.6 版本具有一项实验性功能,可以启用与 pip 安装的软件包的互操作性。使用 conda config --set pip_interop_enabled true 命令。可以“管理”的软件包(即可删除)可能会更新以满足当前解决方案。可管理的软件包通常是从 wheels 安装的。无法管理的软件包将锚定环境,直到通过其他方式将其删除。不可管理的软件包示例是使用 pip install -e 进行的“可编辑”安装。 - kalefranz
"每当可用时,您都希望使用conda软件包",我们该如何实现呢?conda是否可以从setup.py读取并尝试安装可用的依赖项,然后我们可以使用pip install .来完成其余部分呢?还是应该专门创建conda元文件以达到此目的? - Ryan

2
你可以在conda环境中使用"pip install"。只需使用以下命令激活您的环境:
$ conda activate myenvironment

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

编辑:Chris Larson在另一个回答中指出的那样,您应该在环境内安装pip。

(注:Original Answer翻译成“最初的回答”)

$ conda install pip

为了正确注册软件包。最初的回答是:

为了正确注册软件包。


0
如果我有一个 whl 文件,我可以使用 pip install xxx.whl 命令来安装它。
文档 中可以看到,也可以使用 conda install 命令从本地文件安装,但是文件应该是 tarball 文件,即 .tar.bz2 文件。 conda install /package-path/package-filename.tar.bz2 可以工作。如果我有多个 tarballs,我可以将它们打包成一个 .tar 文件,然后使用 conda install /packages-path/packages-filename.tar 命令来安装其中的软件包。

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