conda (2): pip安装还是conda安装包

20230320

conda install和pip install安装到哪里

conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

pip install xxx:分两种情况
一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中
另一种情况,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中

(base) pc:~$ which python
/home/user/anaconda3/bin/python
(base) pc:~$ sudo which python
[sudo] password for xli:
/usr/bin/python

conda install和pip install安装的好处与坏处

conda有严格的检查机制,它会保证你当前装的package安装好之后能work,但是,它只检查用conda安装过的package。
例如,你新安装的package会依赖numpy ,不过你已经安装numpy(e.g., 1.19.2),但是用pip安装的,不好意思,它会认为你没安装,然后用conda再安装一个依赖版本的numpy(e.g., 1.18.5)。这个时候,两个numpy可能就打架了。并且你pip list与conda list显示的numpy版本可能不一致,结果不知道最后运行程序的时候调用了哪个版本的numpy。

pip的一个好处是可以安装时既检查conda安装过package的也检查pip安装过的package。不过,它只负责要什么装什么,不负责能不能把装的一堆packages打通,可能装好不work 😦。

conda的优势:包之间严格的依赖检查;是一个超越Python的环境管理器,可以创建多个环境,环境之间互相隔离;支持Python、R、C/C++;NumPy、SciPy直接使用Intel MKL,对Intel的CPU支持更好。缺点:没做好环境隔离的话,一些包可能安装不上。

怎么用呢

在新环境中,如果装多个packages,既用到conda,又用到pip,那就先conda 的都装好,再pip,如果能用一种装到底,就不要来回换着用。

如果是搞研究或者开发,在一台服务器上多人共享使用,我建议最好是conda。

如果你需要做GPU计算,用到了CUDA、TensorFlow之类的库,尤其是使用版本迭代很快的库,我建议使用conda。

指定包的版本号

pip install lib==version_number
conda install lib=verision_number

conda install cudatoolkit=10.1
conda install cudnn=7.6.5
pip install tensorflow-gpu==2.3.0

参考:
[1] https://www.zhihu.com/question/395145313/answer/2449421755
[2] https://www.zhihu.com/question/395145313/answer/2551141843
[3] https://www.zhihu.com/question/395145313/answer/1257660174
[4] https://blog.csdn.net/weixin_42077074/article/details/113745214
[5] https://zhuanlan.zhihu.com/p/103134466

posted @ 2023-03-20 13:05  xiaoxuxli  阅读(274)  评论(0)    收藏  举报