pandas pip依赖和conda依赖之间的一般差异

eni9jsuy  于 2023-06-28  发布在  其他
关注(0)|答案(1)|浏览(124)

我一直试图找到这个问题的答案有一段时间了,似乎不能谷歌正确的东西。我已经了解了一些关于pip和conda的事情,但仍然有这个挥之不去的问题。为什么安装的依赖项不同?例如,当我用pip(干净的环境)安装pandas,然后进行pip冻结时,它列出了6个已安装的软件包。当我做同样的事情,但与conda(干净的环境),并做conda名单,它列出了30多个软件包已安装。我不明白为什么会有这种区别。特别是在conda列表中,我不明白为什么需要像sqlite这样的东西来使pandas发挥作用。
根据我目前所了解到的情况,我唯一的直觉似乎有点道理,那就是conda安装了必需的软件包和推荐的软件包。由于conda更多的是用于科学计算,它继续安装通常相互补充的东西。而pip实际上只安装了使pandas正常工作的最低限度。如果我错了,请让我知道,因为我只是想更好地了解发生了什么。
这个问题的背景,我工作的新工程公司要求我使用miniconda,这很好,到目前为止我喜欢它。我通常使用python制作一些自定义工具,用于我的工程领域,并使用pyinstaller将它们 Package 在可执行文件中,这样人们就不需要使用python(我发现这是让一些顽固的工程师对python可以做什么感兴趣的最好方法)。所以,我不需要的额外包只会增加pyinstaller必须处理的负担,所以如果我可以避免它们,那么这就是我想要做的。我很想使用--no-deps来强制只获取我认为我需要的包,但我想在颠覆conda的配方之前更多地了解conda在做什么。谢谢!

8yoxcaq7

8yoxcaq71#

pip是python源代码的包安装程序:(https://pypi.org/project/pip/
Conda是一个开源的包管理系统和环境管理系统源码:(https://docs.conda.io/en/latest/
pipconda之间的一个关键区别是pip只管理python包,而conda是一个通用的包管理器。
对于只有conda显式安装的pippython的新环境,我们可以在pip list中看到:

Package    Version
---------- -------
pip        23.1.2
setuptools 67.7.2
wheel      0.40.0

conda list

# Name                    Version                   Build  Channel
bzip2                     1.0.8                h8ffe710_4    conda-forge
ca-certificates           2023.5.7             h56e8100_0    conda-forge
libexpat                  2.5.0                h63175ca_1    conda-forge
libffi                    3.4.2                h8ffe710_5    conda-forge
libsqlite                 3.42.0               hcfcfb64_0    conda-forge
libzlib                   1.2.13               hcfcfb64_5    conda-forge
openssl                   3.1.1                hcfcfb64_1    conda-forge
pip                       23.1.2             pyhd8ed1ab_0    conda-forge
python                    3.11.4          h2628c8c_0_cpython    conda-forge
setuptools                67.7.2             pyhd8ed1ab_0    conda-forge
tk                        8.6.12               h8ffe710_0    conda-forge
tzdata                    2023c                h71feb2d_0    conda-forge
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
vc                        14.3                hb25d44b_16    conda-forge
vc14_runtime              14.34.31931         h5081d32_16    conda-forge
vs2015_runtime            14.34.31931         hed1258a_16    conda-forge
wheel                     0.40.0             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h8d14728_0    conda-forge

正如我们所看到的,conda list包含pythonpip以及它们所依赖的linraries,因为这些也由conda管理,并且在设计上不包含在python包中,但是pip不知道它们。

相关问题