当前位置: 首页 > news >正文

Linux 中,`pip install`与 `apt install`

在 Linux 中,pip installapt install 是两种完全不同的包管理工具,分别用于处理 Python 生态内的库系统级软件/库,核心区别体现在管理对象、安装来源、权限要求等方面。以下是详细对比:

1、核心定位与管理对象

工具定位管理对象典型示例
pip installPython 专属包管理器仅用于安装 Python 库(纯 Python 代码或 Python 扩展模块),属于“应用级依赖”requests(网络请求库)、numpy(数值计算库)、Django(Web 框架)等
apt install系统级包管理器(Debian/Ubuntu 专用)用于安装 系统级软件、工具、底层库,属于“系统级依赖”git(版本控制工具)、gcc(编译器)、python3(系统预装 Python)、libssl-dev(SSL 底层库)等

2、安装来源与仓库

  • pip install
    PyPI(Python Package Index) 仓库下载安装包(默认地址:https://pypi.org/),这是 Python 官方的库仓库,包含全球开发者上传的 Python 库。
    可通过 -i 参数切换国内镜像(如清华、阿里云)加速下载(如 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/)。

  • apt install
    系统软件源 下载安装包(默认是 Ubuntu 官方源,可添加 PPA 等第三方源),这些包由系统维护者打包,确保与当前系统版本兼容。
    软件源配置文件位于 /etc/apt/sources.list/etc/apt/sources.list.d/ 目录。

3、权限与安装路径

  • pip install

    • 若在 虚拟环境 中使用:安装到虚拟环境目录(如 venv/lib/python3.12/site-packages/),无需 sudo 权限,仅当前环境可见,不影响系统。
    • 全局安装(无虚拟环境):默认安装到系统 Python 的 site-packages 目录(如 /usr/local/lib/python3.12/site-packages/),需 sudo 权限,但可能污染系统 Python 环境(不推荐)。
  • apt install
    必须通过 sudo 权限安装,默认安装到系统目录(如 /usr/bin//usr/lib/),属于“系统公共资源”,所有用户可见,受系统包管理器统一管理(如升级、卸载)。

4、版本控制与更新

  • pip install
    支持精确指定版本(如 pip install requests==2.31.0),可安装预发布版本(如 pip install pandas --pre),更新命令为 pip install --upgrade <包名>
    版本由库开发者维护,更新频繁,可能包含最新功能但稳定性需自行验证。

  • apt install
    版本由系统软件源决定,通常是经过测试的“稳定版本”,但更新较慢(优先保证系统兼容性)。
    更新命令为 sudo apt upgrade <包名>,需先执行 sudo apt update 同步源信息。

5、依赖处理

  • pip install
    仅处理 Python 库之间的依赖(如安装 Django 会自动安装其依赖的 asgirefsqlparse 等 Python 库),不处理底层系统依赖(如某些 Python 库依赖的 C 语言库需手动用 apt 安装)。

  • apt install
    会自动处理 系统级依赖(如安装 git 会自动安装其依赖的 libcurl4zlib1g 等系统库),确保软件能在当前系统正常运行。

6、适用场景

场景应使用的工具示例
开发 Python 项目,需安装项目依赖(如 requirements.txt 中的库)pip installpip install -r requirements.txt
安装系统工具(如编辑器、编译器、服务器软件)apt installsudo apt install vim gcc nginx
安装 Python 库的底层系统依赖(如 numpy 依赖的 C 数学库)apt installsudo apt install libopenblas-dev
为特定项目隔离 Python 环境(避免版本冲突)pip install(结合虚拟环境)python -m venv venv && source venv/bin/activate && pip install pandas

一句话概括

  • pip installPython 库的“管家”,负责管理项目级的 Python 依赖,灵活但依赖网络和 Python 环境。
  • apt installLinux 系统的“管家”,负责管理系统级的软件和底层库,稳定但版本更新较慢。

附:apt install -r requirements.txt 是错误的用法

在 Linux 命令行中,必须使用 pip install -r requirements.txt,而 apt install -r requirements.txt 是错误的用法,两者的适用场景和功能有本质区别:

  1. pip install -r requirements.txt 是正确用法
    requirements.txt 是 Python 项目的 依赖清单文件,里面记录的是项目所需的 Python 库(如 flask==2.0.1pandas>=1.3.0 等),这些都是 Python 生态内的包,只能通过 pip(或 pip3)安装。

    示例:

    # 在虚拟环境中安装 requirements.txt 中的所有 Python 依赖
    pip install -r requirements.txt  # 或 pip3(区分 Python 版本时)
    
  2. apt install -r requirements.txt 为什么错误?

    • apt 是系统级工具,用于安装 操作系统层面的软件(如浏览器、编译器、系统库等),其管理的包名与 Python 库名完全不同(例如 Python 库 requests 对应的系统包可能叫 python3-requests,但格式和版本逻辑也不一致)。
    • apt 没有 -r 这个参数,执行该命令会直接报错(提示“无效选项”),且 requirements.txt 中记录的 Python 库名也不是 apt 可识别的系统包名。

特殊情况:混合依赖的处理
如果项目同时需要 系统级依赖(如 Python 库依赖的底层 C 库)和 Python 依赖,需分两步处理:

  1. 先用 apt 安装系统级依赖(需手动确认系统包名):
    sudo apt install python3-dev libssl-dev  # 示例:安装 Python 开发库和 SSL 库
    
  2. 再用 pip 安装 Python 依赖:
    pip install -r requirements.txt
    

aptpip 分工明确,不可混用,requirements.txt 是 Python 生态的专用文件,只能通过 pip 处理。

http://www.dtcms.com/a/399922.html

相关文章:

  • 宁波优质网站制作哪家好晋中市科技馆网站建设
  • SPA中篇【德国篇】钢铁齿轮与数字神经:跨国汽配巨头SPA并购整合攻坚记
  • 十大拿货网站注册app短信验证码平台
  • 山东莱州市建设局网站广西住房城乡建设厅
  • 企业网站构建方案大数据营销系统软件
  • Mysql(二十二)——InnoDB页结构
  • 亮数据|智能IDE与爬虫MCP实战
  • 网站开发的前端到底是什么建设项目一次公示网站
  • 动态做网站丰台新乡网站建设
  • 建设企业网站服务器电商网站建设制作
  • Linux安全 | 防火墙工具 iptables 详解
  • Matlab通过GUI实现点云的最远点下采样(Farthest point sampling)
  • 品牌设计公司哪家好网站可以做多少优化关键词
  • RK3588+MCU机器人控制器解决方案
  • JavaScript内存泄漏与闭包详解:从原理到实践
  • ARM芯片架构之CoreSight Programmers‘ Model 深入解析
  • Video-XL-2论文阅读
  • 在网站建设工作会议上讲话网站安全管理制度
  • JAVA第一阶段结束喽后天更新第二阶段至于明天当然是练习时间回顾一下之前学的太良心了
  • 专业门户网站建设用流媒体做的电台网站
  • python(74) 调用dll文件
  • 国家关于网站信息建设管理文件郴州市人口
  • 温州市城市建设档案馆网站公司宣传册排版
  • redis的set集合的编码方式以及应用场景
  • 【MySQL初阶】03-常见的数据类型
  • CPU调用频率偏高 原因调查
  • Nest 中的数据库集成、JWT身份认证与任务调度全解析
  • 中小型企业网站建设与管理设计制作软件
  • 常德网站建设套餐报价怎么制作公司网页教程
  • 音频基础知识