惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
T
The Blog of Author Tim Ferriss
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
量子位
I
InfoQ
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
V
V2EX
腾讯CDC
P
Proofpoint News Feed
A
About on SuperTechFans
爱范儿
爱范儿
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI

卡卡罗特

eino实现Agent eino整合RAG eino整合Tools go整合向量数据库ChromaDB langchainjs langchain实现Agent ollama调用各大模型 spring-ai 自定义一个MCP openCV初体验 01-Bing每日一图接口 02-腾讯API高清QQ头像https调用接口 01-获取指定网站的所有的链接 context.Context是什么? RWMutex读写锁 SyncMap的使用 defer的使用 go字符串工具类 go生成UUID go正则表达式 最后代码 | 卡卡罗特 swagger文档 | 卡卡罗特 react脚手架开发 | 卡卡罗特 python的对象增强 | 卡卡罗特 langchain实现Agent | 卡卡罗特 03.python列表集合元组字典 | 卡卡罗特 python的异步 | 卡卡罗特 python的生成器 | 卡卡罗特 eino整合Tools | 卡卡罗特 eino实现Agent | 卡卡罗特
python依赖打包 | 卡卡罗特
2026-05-24 · via 卡卡罗特

python依赖打包 ​

生成依赖清单 ​

你可以在 PyCharm 的终端里(确认已激活虚拟环境),输入下面这个命令来生成它, 执行后,你就会在项目根目录看到这个文件了。打开它,里面就是当前虚拟环境下所有依赖包及其精确版本的列表。

但是,有一个非常不好的一点是,它会把虚拟环境里所有包都列出来(包括那些你项目没直接用到、但被其他包自动装进来的“依赖的依赖”)

shell

pip freeze > requirements.txt



## 别人拿到你的代码后,只需下面的命令就可以安装所需要的所有依赖
pip install -r requirements.txt

如果你想只列出项目代码真正直接导入的包,可以用 pipreqs 这个工具。一个更好的替代方案

shell

pip install pipreqs      # 先安装工具
pipreqs . --force --encoding utf-8 --ignore .venv,.idea,__pycache__       # 在当前目录生成,--force 是覆盖已有文件

pipreqs 是动态的,但它动态的依据是你的代码文件内容,而不是虚拟环境.. 虚拟环境中仍然有 requests 这个包

如何同步依赖清单 ​

比如 你的清单里面的依赖比你本地的下载要少。如何让他俩保持一致。因为venv里面的依赖和你清单是2个独立的东西。 这个时候需要用到pip-sync

已经通过 pipreqs 生成了纯净的 requirements.txt,现在想让虚拟环境和它完全一致。

shell

pip install pip-tools

pip-sync requirements.txt

pip-sync 会立刻执行以下操作,请一定确认你的虚拟环境(提示符前有 (.venv)):

  • 安装 requirements.txt 里有的、但环境中缺失的包。
  • 卸载环境中存在、但 requirements.txt 里没有的包。
  • 更新版本不匹配的包。 命令执行完,你的虚拟环境就和 requirements.txt 文件完全一致了,所有“无用”的包都会被自动删除。

注意,它不会将你依赖包的依赖给删除掉,它会很智能的判断。所以不用担心!!!