python环境学习:pip 和 conda的区别和联系。哪个更好使用?pip创建虚拟环境并解释venv模块,pip的常用命令,conda的常用命令。

文章目录

  • 一、pip介绍
  • 二、pip 和 conda 的区别与联系
    • 1、包管理器的功能
    • 2、下载包的来源
    • 3、 环境管理
    • 4、 安装速度和依赖管理
    • 5、联系
    • 6、实践中的使用
  • 三、pip创建独立环境
    • 1、存在问题并提供解决方案
      • a、问题
      • b、解决方案1
      • c、解决方案2
    • 1、创建虚拟环境流程(easy)
    • 2、python3 -m venv venv 意思
      • a、执行效果:
      • b、使用示例:
  • 四、pip常用命令
  • 五、conda 常用命令
  • 六、python 创建虚拟环境

一、pip介绍

  1. pip 介绍很简单,但是在学习深度学习的时候,虽然用过,但也仅仅是用过,对其了解不多,更多的是下载包,相对于pip,用的更多的反而是anacondaminiconda 这两个python包管理器。
  2. pip 是 Python 的包管理工具,主要用于安装、更新、卸载 Python 软件包。它是 Python 官方推荐的工具,能够从 Python Package Index (PyPI) 下载并安装符合指定依赖关系的包。
  3. 下面是pip和conda的区别和联系
  • 有兴趣可以添加我,一起探讨技术。
    • 加V:Fengfl1222,名称:聚星汇智
    • 要资料,申请备注为:CSDN+地方+资料,如CSDN山东资料
    • 想接项目一起努力进步,申请备注为:CSDN+地方+项目,如CSDN+山东+项目,添加成功之后,可以发一份简历。
    • 项目组缺人,想要兼职的人,火速加我进群。
    • 本人介绍:211高校(北京交通大学)计算机研究生,本科双非计算机毕业后,校招进入军工,工作2个月离职后进入阿里,工作两年后离职考研,现已毕业,入职济南某大厂。团队主要技术栈:RAG、LLM、JAVA、PYTHON、GO、VUE、REACT等web开发需求。已有开发团队,如果有空闲时间想一个接项目者,可以加我呦。
    • 不按上诉规则添加好友者,不予通过。

二、pip 和 conda 的区别与联系

1、包管理器的功能

  • conda: 是一个跨平台的包管理器和环境管理器,最初由 Anaconda 公司开发。它不仅可以管理 Python 包,还可以管理其他语言(如 R、C++)的包。此外,conda 还可以创建和管理虚拟环境。

  • pip: 是 Python 的包管理工具,用于安装和管理 Python 包。pip 主要从 Python Package Index (PyPI) 上下载并安装包。

2、下载包的来源

  • conda: 从 conda 仓库(如 Anaconda 仓库或 conda-forge)中下载和安装包。conda 仓库中的包通常经过了额外的测试和优化,适合在科学计算和数据分析环境中使用。

  • pip: 从 PyPI 仓库中下载和安装包,几乎可以安装任何 Python 包,包括一些最新的第三方库

3、 环境管理

  • conda: 提供了强大的环境管理功能,可以创建独立的环境(很好的工具),并为这些环境安装特定版本的 Python 和相关的库。conda 还能自动处理包之间的依赖关系。

  • pip: 只能安装和管理 Python 包,不能管理环境。如果 需要管理虚拟环境,通常使用 virtualenv 或 venv 等工具与 pip 结合使用(也很好用,我现在就在用这个)

4、 安装速度和依赖管理

  • conda: conda 包通常是预编译的二进制包,安装速度快,并且 conda 会自动处理包的依赖关系,避免依赖冲突。

  • pip: pip 通常下载源代码并在安装时编译,安装速度可能较慢,特别是对于需要编译的包。pip 处理依赖关系时有时可能会遇到冲突,需要手动解决。

5、联系

  • 兼容性: 在 conda 环境中,你可以使用 pip 安装包。pip 安装的包会直接下载到当前的 conda 环境中,并且可以与 conda 安装的包一起使用。不过,需要注意包的兼容性问题,特别是当 pip 安装的包和 conda 安装的包有冲突时,可能会导致环境中的某些功能失效

  • 环境隔离: 无论是使用 conda 还是 pip 安装包,在 conda 创建的环境中安装的包都是隔离的,不会影响其他环境中的包。

6、实践中的使用

  • 使用 conda 安装依赖包: 对于常见的科学计算和数据分析包(如 NumPy、Pandas、Scikit-learn 等),建议优先使用 conda 进行安装,因为这些包已经过优化,并且能自动处理复杂的依赖关系。

  • 使用 pip 安装无法通过 conda 获取的包: 当你需要安装一些不在 conda 仓库中的包时,可以使用 pip。在 conda 环境中运行 pip 命令时,pip 安装的包会直接下载到该 conda 环境中。

综上所述,在 conda 环境中使用 pip 是完全可以的,安装的包会直接进入 conda 环境,但最好在安装之前确保包的兼容性
pip和conda包管理器一般是同步使用的

三、pip创建独立环境

1、存在问题并提供解决方案

a、问题

pip也可以像conda一样,创建独立的项目python环境

缺点:就是pip创建独立的python环境会依赖全局的python环境,也就是全局必须现有python环境,而且创建的python环境和全局的python版本是一致的,不能更改。

好处:每个项目都有自己的虚拟环境,可以导出到 requirement.txt 文件,方便其他人使用部署。

b、解决方案1

缺点解决方案:我会先使用conda创建不同的python环境,然后在自己需要的python 版本下,进入到项目,使用 python -m venv venv 去创建虚拟环境,

c、解决方案2

电脑上可以安装多个python版本,但是如何切换,目前没调研,后面再学习把。

1、创建虚拟环境流程(easy)

  1. 删除旧的虚拟环境(假设你当前的虚拟环境目录名为 venv)(如果有,需要删除):

    rm -rf venv
    
  2. 重新创建虚拟环境:
    Linux

    python3 -m venv venv
    

    window

    python -m venv venv
    
  3. 激活虚拟环境
    Linux

    source venv/bin/activate
    

    window

    ./venv/Scripts/activate
    
  4. 并安装依赖:

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    

这样操作后,你的项目将在新的虚拟环境中运行,所有的依赖包也会基于 Linux 平台重新安装,确保项目能够正常工作

2、python3 -m venv venv 意思

命令 python3 -m venv venv 用于在 Python 中创建一个虚拟环境。下面是这个命令的具体解释:

  • python3 : 指定使用 Python 3 版本的解释器。有些系统中你可能需要使用 python 或 python3,具体取决于 Python 的安装方式。如果你运行的是 python3.8 或其他版本,你可以直接指定对应的版本,例如 python3.8。
  • -m venv :
    -m 选项告诉 Python 运行指定的模块作为脚本。在这个例子中,venv 是一个用于创建虚拟环境的标准模块
    venv 模块用于创建虚拟环境,这是一种隔离的Python环境,独立于系统的全局Python安装。
  • venv: 这个是你想要创建的 虚拟环境的名称(文件夹名称)可以随意命名,但使用 venv 作为文件夹名是常见的约定

a、执行效果:

当你运行 python3 -m venv venv 时,会发生以下几件事:

  1. 创建一个新的目录(如果不存在):在这个例子中是 venv,这个目录将包含虚拟环境的所有文件。
  2. 复制Python解释器:虚拟环境会有一个独立的 Python 解释器,它位于 venv/bin/(Linux) 或 venv/Scripts/(Windows)中。
  3. 创建隔离的环境:在这个虚拟环境中安装的任何 Python 包都不会影响系统的全局 Python 安装,且不会与其他项目的依赖冲突。

b、使用示例:

创建虚拟环境后,你需要激活它,然后在这个环境中安装和使用依赖包。例如:

  1. 创建虚拟环境。win/linux/mac都是这个

    python -m venv venv
    

    或者是(版本问题):

    python3 -m venv venv
    
  2. 激活虚拟环境(Linux/macOS)

    source venv/bin/activate
    
  3. 激活虚拟环境(Windows)

    venv\Scripts\activate
    
  4. 安装项目依赖

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    

虚拟环境使得项目之间的依赖隔离,避免冲突,是Python项目管理的最佳实践之一。

四、pip常用命令

  1. 安装包。安装最新版本的包

    pip install package_name
    

    示例:pip install requests

  2. 安装指定版本的包

    pip install package_name==version
    

    示例:pip install requests==2.25.1

  3. 安装最新的兼容版本

    pip install package_name~=version
    

    示例:pip install requests~=2.25 这是安装 2.25.x 版本的最新版本。

  4. 从文件安装包

    pip install -r requirements.txt
    

    这是用来安装 requirements.txt 文件中列出的所有包。

  5. 升级包
    升级包到最新版本
    bash

    pip install --upgrade package_name
    

    示例:pip install --upgrade requests

  6. 卸载包

    pip uninstall package_name
    

    示例:pip uninstall requests

  7. 查看已安装的包
    列出所有已安装的包

    pip list
    

    这将显示当前环境中所有已安装的包及其版本号。

  8. 查看包的详细信息

    pip show package_name
    

    示例:pip show requests

  9. 检查包是否需要更新
    检查包是否有可用的更新

    pip list --outdated
    

    这会列出所有可以更新的包及其最新可用版本。

  10. 清理缓存
    清理下载缓存

    pip cache purge
    
  11. 搜索包
    搜索包

    pip search package_name
    

    这个命令在新版 pip 中被移除,但在旧版中可以用来搜索包。

  12. 生成 requirements.txt 文件
    生成当前环境的依赖文件

    pip freeze > requirements.txt
    

    这会将当前环境中所有包及其版本输出到 requirements.txt 文件中。

  13. 指定源
    从特定源安装包

    pip install package_name -i https://pypi.org/simple
    

你可以指定从不同的源安装包,比如国内源来加快速度。
这些命令涵盖了 pip 包管理的常见操作,帮助你有效地管理 Python 项目中的依赖。

五、conda 常用命令

请转到博文:pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)

六、python 创建虚拟环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Three 物体(三)

点(Points) 一个用于显示点的类。 由WebGLRenderer渲染的点使用 gl.POINTS。 构造器 Points( geometry : Geometry, material : Material ) geometry —— (可选)是一个Geometry或者BufferGeometry的实例,默认值是…

Android13 app后台无法启动Abort background activity starts from

总纲 android13 rom 开发总纲说明 目录 1.前言 2.log分析 3.代码查找分析 4.修改方法 5.编译测试 6彩蛋 1.前言 Android13 用户app后台无法启动,提示Abort background activity starts from 10111 2.log分析 08-07 21:37:36.703: W/ActivityTaskManager(440): Back…

保护网站安全,了解常见的几种网络攻击

随着互联网技术的迅猛发展,网站作为信息展示和交互的重要平台,面临着日益复杂的网络攻击威胁。从简单的口令入侵到复杂的分布式拒绝服务(DDoS)攻击,网络攻击手段层出不穷,给网站所有者带来了巨大的挑战。今…

完成控制器方法获取参数-@RequestParam

文章目录 1.将方法的request和response参数封装到参数数组1.SunDispatcherServlet.java1.根据方法信息,返回实参列表2.具体调用 2.测试 2.封装Http请求参数到参数数组1.自定义RequestParam注解2.MonsterController.java 增加参数3.SunDispatcherServlet.java1.resol…

正则表达式备查

一、常用 符号内容\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\”匹配“\”,“(”匹配“(”。^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还…

ARM工作模式

ARM ARM架构ARM七个工作模式寄存器异常向量表存储格式(内存大小端)汇编指令 ARM架构 RAM:随机访问存储器 ROM:只读访问存储器 AHB:先进高速总线 APB:先进外设总线 USB:统一串行总线 norflash&am…

Python爬虫案例二:获取虎牙主播图片(动态网站)

爬虫流程:优先假设是JSON数据,抓包方式只能翻页JSON数据HTML数据1.异步数据(即先返回HTML,再返回目标的数据,只是触发了JSON请求),不在HTML中2.不能刷新网页,直接翻页 测试链接&…

基于Vue.js+Express的夕阳红养老院管理系统的设计与实现--附源码98650

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 相关技术介绍 2.1 Express框架介绍 2.2 Vue.js 2.3 MySQL数据库 2.4 Node.js主要功能 3系统分析 3.1 可行性分析 3.2 系统流程分析 3.2.1 数据新增流程 3.2.2 数据修改流程 3.2.3数据删除…

【Android】Glide模块工作原理

Glide模块工作原理 每个Glide模块包含一个Decoder,和一个Transcoder Decoder负责将DataSource转换为对应的Resource Transcoder负责将对应的Resource,转换为Drawable GlideModule示例 这里以SVG为例,展示下GlideModule是如何定义的 cla…

Java中等题-完全平方数(力扣)

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 示…

AWS SAM CLI 备忘单!

安装 AWS SAM CLI brew tap aws/tap brew 安装 aws-sam-cli 验证安装 $ sam --version 升级 SAM $ brew upgrade aws-sam-cli 您需要 AWS 凭证才能在 AWS 上工作。 构建并部署简单应用程序 $ sam init→ 下载示例应用程序 $ sam build→ 构建您的应用程序 $ sam deploy --guid…

记录自己的嵌入式学习之路

一、STM32软件编程 【STM32】C语言基础补充-CSDN博客 【STM32】写Keil程序的注意事项-CSDN博客 【STM32】一些外设通用内容-CSDN博客 二、嵌入式硬件设计 未完待续

go设计模式———适配器模式

适配器模式是一种设计模式,用来解决接口不兼容的问题。它的作用是让原本因为接口不兼容而无法一起工作的类能够协同工作。通俗地说,它就像是一种“转换器”,能够把一种接口转化为另一种接口,从而让不同的系统或组件可以一起使用。…

联合体成员的访问——真题讲解

【题目】 阅读下述代码,请问修改data的value成员以存储3.14,正确的方式是() union Data { int num; float value; char symbol; }; union Data data; A. data.value 3.14; B. value.data 3.14; C. data->value 3.14; D. value->data 3.1…

Java学习_18_Stream流

文章目录 前言一、不可变集合二、Stream流思想第一步:得到Stream流第二步:Stream流的中间方法Stream流的终结方法 总结 前言 博客仅记录个人学习进度和一些查缺补漏。 学习内容:BV17F411T7Ao 一、不可变集合 不可变集合就是长度和内容都不可…

希尔排序,详细解析(附图解)

1.希尔排序思路 希尔排序是一种基于插入排序的算法,通过将原始数据分成若干个子序列,然后对子序列进行插入排序,逐渐减小子序列的间隔,最后对整个序列进行一次插入排序。 1.分组直接插入排序,目标接近有序--------…

transformers调用llama的方式

transformers调用llama的使用方式 不同版本llama对应的transformers库版本llama2llama3Meta-Llama-3-8B-InstructMeta-Llama-3-8B llama3.1Meta-Llama-3.1-8B-Instruct 不同版本llama对应的transformers库版本 # llama2 pip install torch1.13.1cu116 torchvision0.14.1cu116 …

C语言贪吃蛇之BUG满天飞

C语言贪吃蛇之BUG满天飞 今天无意间翻到了大一用C语言写的贪吃蛇&#xff0c;竟然还标注着BUG满天飞&#xff0c;留存一下做个纪念&#xff0c;可能以后就找不到了 /* 此程序 --> 贪吃蛇3.0 Sur_流沐 当前版本&#xff1a; Bug满天飞 */ #include<stdio.h> #includ…

【补充篇】AUTOSAR多核OS介绍(下)

文章目录 前文回顾1 AUTOSAR OS1.1 AUTSOAR OS元素1.1.1 操作系统对象1.1.2 操作系统应用程序1.1.3 AUTOSAR OS裁剪类型1.1.4 AUTOSAR OS软件分区1.2 AUTOSAR OS自旋锁1.3 AUTOSAR OS核间通信1.4 AUTOSAR OS多核调度前文回顾 在上篇文章【补充篇】AUTOSAR多核OS介绍(上)中,…

docker常见指令——镜像指令and容器指令

docker镜像指令 查看镜像 docker images 搜索镜像 docker search 镜像名 上传镜像 docker pull 镜像名 或 docker pull 镜像名&#xff1a;tag 注:不加:tag表示最新版本 &#xff0c;加:tag表示指定版本 运行镜像 docker run 镜像名 保存镜像 docker save 镜像名/镜像id -o 要…