Pip install和Conda install的使用
作者:杨杨杨Garrick 发布时间:2023-11-04 17:32:37
版本一
conda install xxx:这种方式安装的库都会放在/Users/orion-orion/miniforge3/pkgs目录下。我们在我们的虚拟环境中要用到或下载时先到该路径下去找,若有则直接将其复制到我们的虚拟环境中包得存放位置: ~/site-packages/。若没有,则先下载到/anoconda3/pkgs,在复制到虚拟环境包的路径下。
pip install xxx:这是就要两种情况,一种情况就是此时使用的是conda中安装的python,那么xxx会被安装到/Users/orion-orion/miniforge3/lib/python3.9/site-packages文件夹中;如果当前用的是系统的python,那么xxx会通常会被安装到/Users/orion-orion/.local/lib/python3.9/site-packages文件夹中
版本二
conda ≈ pip(python包管理) + virtualenv(虚拟环境) + 非python依赖包管理
conda 可以安装不限于 Python 的程序库。创建一个局部环境并且安装包。pip 是安装到原有环境中。
pip install 会检查依赖并且安装,但是 conda 会做的更多,甚至会把已经有了的包卸载并且升级成合适的
pip只能安装python包,而conda可以安装由任何语言编写的包
pip不能创建虚拟环境,需要借助另外的包,例如virtualenv,而conda可以创建虚拟环境。
conda 是一次下载多次使用,如果其他环境有这个包,就直接复制到新环境的文件夹中。
版本三
大部分情况下,二者没有区别,怎么安装都可以work,不过,二者混着装各种package你真的会因为版本冲突而发疯!
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。
这个时候,uninstall可能也卸载不干净,卸了一个还有一个,最后还可能一直list有却是一个空壳。这个时候,快刀斩乱麻的方法,找到anaconda的lib/site-packages/numpy, 手动删掉它!
pip的一个好处是可以安装时既检查conda安装过package的也检查pip安装过的package。不过,它只负责要什么装什么,不负责能不能把装的一堆packages打通,可能装好不work 。
一般原则,在新环境中,如果装多个packages,既用到conda,又用到pip,那就先conda 的都装好,再pip,如果能用一种装到底,就不要来回换着用。
conda解决依赖的问题很弱,环境包多了以后经常要解决依赖几分钟到十几分钟。我个人感觉比较好的实践是conda创建虚拟环境,装torch/tensorflow等比较难装的包,基础环境配好以后,后面装包一律用pip。
来源:https://blog.csdn.net/qq_44537267/article/details/129339806


猜你喜欢
- 0x01 OpenCV安装 通过命令pip install opencv-python 安装pip install opencv-
- 利用 CSS 框架,可以简化你的工作,提高工作效率。CSS 框架是一系列 CSS 文件的集合体,包含了基本的元素重置,页面排版、网格布局、表
- 如何做一个专门显示文本文件的页面? 代码如下:txt.asp<html><head&g
- 在前面我们介绍了多种请求库,如 Requests、Urllib、Selenium 等。我们接下来首先贴近实战,了解一下代理怎么使用,为后面了
- Python的可视化工具有很多,数不胜数,各有优劣。本文就对其中的pylab进行介绍。之所以介绍这一款,是因为它和Matlab的强烈相似度,
- <?php /* *@author 夜无眠  
- 基于web的技术中,分页是一个老的不能再老的,但大家津津乐道的问题,随着xml技术的日渐应用,把xml应用到分页当中,也是一种可能,当然网上
- 一、JDBC是什么?JDBC 指 Java 数据库连接(Java Database Connectivity),是一种标准Java应用编程接
- 最近用golang写了一个处理文件的脚本,由于其中涉及到了文件读写,开始使用golang中的 io 包,后来发现golang 中提供了一个b
- 本文实例讲述了Python使用CMD模块更优雅的运行脚本的方法。分享给大家供大家参考。具体分析如下:平时由于经常给测试人员调试一些东西,虽然
- 需求 现在有一个需求是将10w条数据插入到MSSQL数据库中,表结构如下,你会怎么做,你感觉插入10W条数据插入到MSSQL如下的
- 与其它大多数语言一样,Python 也拥有 for 循环。你到现在还未曾看到它们的唯一原因就是,Python 在其它太多的方面表现出色,通常
- 为什么要使用多线程?使用多线程,可以同时进行多项任务,可以使用户界面更友好,还可以后台执行某些用时长的任务,同时具有易于通信的优点。pyth
- 问题你想将一个模块分割成多个文件。但是你不想将分离的文件统一成一个逻辑模块时使已有的代码遭到破坏。解决方案程序模块可以通过变成包来分割成多个
- 命名空间: 每一个作用域变量存储的位置,或者解释为 存储作用域中变量的字典。作用: 获取想查看某个作用域中的变量名、变量值。使用方法: lo
- 前言为什么会做这个?因为我们把word转化为pdf,wps默认转化为文字pdf,而图片pdf要会员。网上确实也有网站可以实现免费的,但是未必
- python 2.6编写,自己瞎写的,备用''' Export and Import ElasticSe
- 在开发Web应用时,无一例外地需要访问数据库,以完成对数据的查询、插入、更新、删除等操作。受应用逻辑的影响,有时需要将多条数据库操作指令组成
- Windows下的安装:下载地址:https://pypi.python.org/pypi/pyquery/#downloads下载后安装:
- 一、requests库1、requests简介requests库就是一个发起请求的第三方库,requests允许你发送HTTP/1.1 请求