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

Python-批量安装依赖

还在逐个pip install?一文掌握批量安装、环境导出、镜像加速,让依赖管理变简单!


🤔 为什么需要requirements.txt?

在Python项目开发中,我们经常需要安装大量依赖库(比如PyQt5、OpenCV、pymodbus等)。逐个执行pip install命令不仅繁琐,还容易遗漏、出现版本冲突。

最高效的解决方案:创建requirements.txt文件,写入所有需要的库名(可指定版本),然后一条命令批量安装全部依赖。

本文全程实操,从创建文件→编写清单→批量安装→导出环境,新手也能快速上手。


📄 一、什么是requirements.txt?

requirements.txt是Python项目的「依赖清单文件」,本质是一个纯文本文件,核心作用是:

作用说明
📋记录依赖列出项目所需的所有第三方库及版本
🚀一键安装通过pip install -r requirements.txt批量安装
🔄环境复现团队成员/部署服务器可快速搭建相同环境
📦版本锁定指定精确版本,避免兼容性问题

重点:文件名建议固定为requirements.txt(Python生态通用约定,pip工具可直接识别),后缀必须是.txt,注意不要写成requirements.txt.txt(需开启电脑文件后缀显示)。


✍️ 二、实操步骤:创建+编写requirements.txt

全程以「PyCharm项目」为例,三种创建方法任选一种,新手优先选方法1

方法1:手动创建(最直观)

适配场景:新手、不熟悉终端命令,直接通过PyCharm图形界面操作,零门槛。

  1. 在PyCharm中,右键点击项目根目录NewFile

  2. 输入文件名requirements.txt,按回车确认

  3. 双击打开文件,开始编写依赖清单

💡补充提示:如果找不到项目根目录,可通过PyCharm左侧「Project」面板查看,确保文件和核心代码同级,避免后续执行命令时找不到文件。


方法2:终端快速创建

适配场景:习惯用终端操作,快速创建空文件,无需图形界面点击。

# Windows/Linux/macOS 通用 touch requirements.txt

或者使用:

# 创建并同时写入初始内容 echo "# Python项目依赖清单" > requirements.txt

方法3:使用pip freeze导出(已有环境时最便捷)

适配场景:你已经手动安装好了所有需要的库,想快速生成依赖清单。

pip freeze > requirements.txt

执行后,会自动生成requirements.txt,写入当前环境所有已安装的第三方库及对应版本

📝 三、编写requirements.txt内容(语法超简单)

语法规则

  • 每行写一个库名

  • 可按需指定版本(推荐指定,避免版本兼容问题)

  • #开头的行是注释,不会被执行(可用于标注库的用途)


📌 写法1:基础版(只写库名,安装最新稳定版)

适合:对库版本无特殊要求,只想快速安装,简洁高效。

# Python上位机依赖清单 # 界面开发(PyQt5) PyQt5 pyqt5-tools # PLC通信相关(Modbus + S7协议) pymodbus python-snap7 # 相机对接 + 视觉处理 opencv-python # 辅助工具 numpy # 保存数据到Excel openpyxl # 串口通信 pyserial

📌 写法2:进阶版(指定版本,推荐项目使用)

推荐理由:Python库版本更新快,不同版本可能存在兼容性问题(比如PyQt5高版本和pyqt5-tools不匹配)。指定版本能确保环境一致性。

格式:库名==版本号==前后无空格)

# Python上位机依赖清单(指定版本,稳定兼容) # 界面开发(PyQt5稳定版本) PyQt5==5.15.9 pyqt5-tools==5.15.9.3.0.1 # PLC通信(适配PLCSIM Advanced 5.0) pymodbus==2.5.3 # Modbus TCP通信 python-snap7==1.4.1 # S7协议,对接西门子PLC # 相机对接 + 视觉处理 opencv-python==4.8.1.78 # 稳定版,避免取流卡顿 # 辅助工具 numpy==1.24.3 # 适配OpenCV 4.8.1 openpyxl==3.1.2 # 操作Excel pyserial==3.5 # 串口通信

📌 写法3:版本范围指定(了解即可)

操作符示例说明
==numpy==1.24.3精确匹配指定版本
>=numpy>=1.20.0安装大于等于指定版本
<=numpy<=1.25.0安装小于等于指定版本
~=numpy~=1.24.0兼容版本(允许补丁版本更新)

🚀 四、关键步骤:批量安装所有依赖

编写完requirements.txt后,无需逐个执行pip install,一条命令就能批量安装所有库。

1. 打开终端,切换到项目根目录

打开PyCharm的Terminal终端(底部),默认已经在项目根目录。若不在,输入以下命令切换:

cd D:\PyCharmProjects\PLC_Camera_UpperComputer # 示例路径,替换成你自己的

2. 核心安装命令(必记)

基础命令(从官方PyPI源安装):

pip install -r requirements.txt

执行后,pip会自动读取requirements.txt中的所有库,逐个下载、安装,终端会显示安装进度,全部显示Successfully installed即安装完成。

3. 优化命令(国内镜像源加速)

重点避坑:国内网络访问Python官方PyPI源(国外服务器)速度慢,经常出现超时、安装失败的问题。推荐使用国内镜像源加速:

# 阿里云镜像源(推荐,速度快) pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ # 清华镜像源(备选,稳定) pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 中科大镜像源(备用) pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/

补充:镜像源只是加速下载,安装的库和官方源完全一致,无需担心版本问题。

4. 永久配置镜像源(一劳永逸)

如果不想每次安装都加-i参数,可以永久配置清华镜像源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

配置后,每次pip install自动走镜像源,无需再加-i参数。

🔧 五、实用拓展命令(必记,提升效率)

1. 导出当前环境的所有库到requirements.txt

场景:手动安装好所有库后,想快速生成requirements.txt用于备份或分享。

pip freeze > requirements.txt

执行后,会自动覆盖(或生成)requirements.txt,写入当前环境所有已安装的Python库及对应版本

⚠️注意:pip freeze会导出所有已安装包(包括间接依赖),可能包含一些不需要的库。如需只导出项目直接依赖,可使用pipreqs工具:

2. 批量卸载所有依赖(慎用)

场景:清理开发环境、重新配置依赖,执行以下命令,会批量卸载requirements.txt中的所有库:

pip uninstall -r requirements.txt -y

说明:-y 参数表示“自动确认卸载”,无需逐个输入y确认,提升效率;慎用,避免误删环境。

3. 安装时指定requirements.txt路径

场景:requirements.txt不在当前终端目录下(比如放在桌面),无需切换目录,直接指定文件路径即可:

pip install -r D:\Desktop\requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

4. 查看已安装包列表

pip list

5. 查看过期包

pip list --outdated

📊 总结:核心命令速查表

操作命令
批量安装pip install -r requirements.txt
镜像加速安装pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
导出依赖清单pip freeze > requirements.txt
批量卸载pip uninstall -r requirements.txt -y
查看已安装包pip list
永久配置镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

📢 如果觉得有用,欢迎点赞、收藏、转发!更多Python开发技巧,持续更新中~

http://www.jsqmd.com/news/1124083/

相关文章:

  • 如何实现微信聊天记录永久保存?掌握完整的数据自主管理方案
  • 大模型实战选型指南:基于真实业务场景的横评方法论
  • 5分钟搞懂kube-prod-runtime监控体系:Prometheus与Grafana最佳实践
  • Mermaid Live Editor终极指南:用代码思维高效创建专业图表
  • 腾讯元宝 vs 豆包:AI助手能力边界与微信生态适配指南
  • JHenTai:突破多设备阅读限制的跨平台漫画工具
  • 从网页到设计稿:如何用3分钟将任意网站转换为可编辑的Figma文件
  • 如何用开源AI技术将低清视频无损放大到4K画质?
  • StudioPlugins调试利器:CodeLocator插件快速定位Android代码问题
  • 从零到一:基于YOLOv5s的BDD100K自动驾驶目标检测实战指南
  • FlipperZeroHondaFirmware最佳实践:从入门到专家的完整学习路径
  • Kimi K2.5 vs Claude Code:中文日志结构化提取实战横评
  • ngxtension 国际化与 SVG:构建国际化应用和 SVG 图标的最佳实践
  • Runbook DSL扩展教程:自定义语句和钩子开发指南
  • 紫队演练框架PTEF社区贡献指南:如何参与开源安全框架建设
  • FastAPI-SQLAlchemy源码解析:深入理解其内部工作机制
  • MCP Toolbox:数据库AI助手终极指南,5分钟开启高效数据操作新时代 [特殊字符]
  • 智能文献获取革命:Zotero-SciHub插件如何重塑科研工作流
  • 3步解锁AI视频增强:让模糊影像重获新生的终极方案
  • Unity抖音小游戏从打包到上架流程
  • 工业4-20mA电流环接收器设计与PIC单片机实现
  • 毕设分享 深度学习yolo藻类细胞检测识别(科研辅助系统)(源码+论文)
  • Lucene80DocValuesConsumer 五种类型源码阅读顺序
  • WaveTools鸣潮工具箱:终极免费工具解锁120帧游戏新体验
  • 模型微调实战指南:黄金场景与死亡陷阱
  • 深度解析WVP-GB28181-Pro:构建企业级视频监控平台的完整方案
  • svu在多仓库项目中的应用:monorepo版本管理最佳实践
  • E-Hentai-Downloader使用指南:批量下载E-Hentai资源的高效解决方案
  • 3大优势+实战指南:基于Docker的Minecraft Forge服务器自动化部署方案
  • 服务器夯机排查方案