pip freeze和conda list之间的区别

12 浏览
0 Comments

pip freeze和conda list之间的区别

我同时使用"pip freeze"和"conda list"来列出我环境中安装的包,但它们有什么区别?

0
0 Comments

Difference between pip freeze and conda list

如果目标仅仅是列出所有已安装的包,就可以使用pip list或conda list。pip freeze和conda list --export更适用于生成环境的需求文件。例如,如果在自定义环境中创建了一个包,并且有一些依赖项,可以使用conda list --export > requirements.txt。当准备将包分发给其他用户时,他们可以轻松地复制您的环境和相关依赖项,使用conda create --name --file requirements.txt。

conda和pip之间的区别需要更长的讨论。在StackOverflow上有很多解释。Jake VanderPlas的这篇文章也是很好的阅读材料。

你可能还会发现这个表格很有用。它列出了conda、pip和virtualenv之间的操作等效性。

美丽的表格似乎已经移动了... 404!

非常感谢您的注意!我想知道这是否与现在需要virtualenv的人越来越少有关(pyenv和pipenv可能已经成为更主要的力量)。我刚刚更正了链接,并将比较限制在pip和conda之间(不再列出virtualenv)。

这个网站是我的文档 - 我总是喜欢修复它们;-) - 我重新添加了virtualenv(如果你向右滚动,它在表格中),如果你认为删除它的引用会读起来更好,请随意删除。 (:

我来到这里是为了寻找conda list --export。从pip开始使用conda后,又回到了另一个问题的答案。

虽然我的代码没有任何错误,但是当我按照"conda list --export > requirements.txt"和"conda create --name --file requirements.txt"时,我得到了"Found conflicts! Looking for incompatible packages."的错误,并且无法创建环境。有什么想法吗?

ğurGürkanTosun,我在语法上没有看到明显的问题。可能是因为在第一次运行代码时,并没有在干净的环境下开始(所以需求文件可能包含了你不需要的部分)。此外,静态环境文件和动态环境文件是有区别的。如果你完全使用conda来管理你的环境,请考虑使用yaml,并只在真正需要时指定版本。在pyjantor repo中可以看到一个很好的例子:github.com/ericmjl/pyjanitor/blob/dev/environment-dev.yml

我的conda环境中有一些包是通过conda安装的,其他包是通过pip安装的(因为某些库只支持pip,并且我使用conda)。所以我需要生成两个requiremen_{pip或conda}.py文件吗?还是有其他解决办法可以正确安装所有内容?

由于我们始终可以在conda环境中使用pip,因此不需要两个单独的文件。例如,当运行conda list时,您应该清楚地看到Build和Channel列,以指示包是通过conda还是pip安装的:

python # Name. Version. Build. Channel

pygments 2.8.1 pypi_0 pypi

pyparsing 2.4.7 pypi_0 pypi

python 3.9.2 h2502468_0_cpython conda-forge

0