6.1 第三方库与PyPI
不是所有功能都要从 0 开发:学会用第三方库,避免重复造轮子。
课时概要
接模块 5 的第一笔账:让分析变真。不自己写读音表和情感模型,而是去 PyPI 找现成库。走一遍「找库 → 验库 → REPL 玩 → 接进项目」的套路,锁定 pypinyin(拼音+多音字)和 snownlp(0~1 情感分),顺便认识 REPL 和中文 NLP 生态。
以上为 UP 主的 B 站官方简介,非观看笔记;只有跟完这一节才算自己的理解。
视频:【零到全栈】6.1-第三方库与PyPI | 时长 22:45 | 模块 6 · 生态、数据与状态
讲义:模块 6.1:第三方库和 PyPI(李勃老师.com)
本节要点
- 先问「社区里是不是早有人写好了」,别急着自己写——这叫别「重新造轮子」。
- PyPI(pypi.org)≈ 前端的 npm registry,Python 公共仓库;谁都能上传,所以候选必须自己验。
- AI 只给线索:可能过时、甚至幻觉出不存在的包名——名字它出,靠不靠谱我们验。
- 验两层:① GitHub 星数 + 最近更新(靠不靠谱);② 读文档对照自己的需求(能不能用)。
- REPL:终端敲
python3,敲一行出一行,exit()出——装完新库先来这儿玩两下,比读文档快。 - 锁定 pypinyin(带声调、认多音字)和 snownlp(
sentiments给 0~1 分,越近 1 越积极)。 pip freeze > requirements.txt更新账;pip install -r一条命令复现环境。
笔记正文(讲义整理)
为什么不自己写
拼音要一张几万字的读音表 + 多音字词组规则(重庆 chóng / 重要 zhòng);情感分要从大量真实文本里训出来的模型。不是不能做,是太花时间。 正确反应:这件事社区里是不是早有人写好了?
找库:PyPI + 三种查法
- 直接上 pypi.org 搜;
- 搜索引擎搜「python 中文 拼音 库」;
- 问 AI 推荐候选。
三条路都只给候选,不保证靠谱——AI 有知识截止,还会一本正经编不存在的包名(幻觉),甚至有坏人抢注这种名字放恶意代码。立规矩:候选到手必须自己验。
验库两层
- 靠不靠谱:GitHub 星数(人气/信任)+ 最近更新时间(还活着吗);
- 能不能用:翻 README 文档,拿函数对照自己的需求——拼音要带声调、认多音字;情感要给 0~1 分。
锁定:pypinyin(github.com/mozillazg/python-pinyin)、snownlp(github.com/isnowfy/snownlp)。
装 + REPL 试
bash
cd ~/zero-to-tech/backend && source .venv/bin/activate
pip install pypinyin snownlp
python3 # 进 REPL,提示符变 >>>REPL 体感:敲一行看一行,敲个「值」它就回显结果,不用写 print。和 .py 脚本的区别:脚本把动作写全一次跑完、只显示显式 print 的;REPL 敲一句答一句,适合把玩新库。
python
>>> from pypinyin import pinyin, lazy_pinyin, Style
>>> pinyin("重庆") # [['chóng'], ['qìng']] 嵌套列表
>>> pinyin("重要") # [['zhòng'], ['yào']] 多音字判对
>>> lazy_pinyin("重庆", style=Style.TONE) # ['chóng','qìng'] 扁平+声调
>>> from snownlp import SnowNLP
>>> SnowNLP("今天的风很轻").sentiments # 0.94... 越近 1 越积极
>>> SnowNLP("太失望了").sentiments # 0.003...
>>> exit()中文 NLP 生态顺带认脸 jieba(分词,把句子切成词)——用不上,记个名字。
记账
bash
pip freeze > requirements.txt # pypinyin/snownlp 连同依赖进清单
# pip install -r requirements.txt → 任何人/未来的服务器一条命令复现环境和 GFG / 课程笔记的连接
| 这节内容 | GFG / 已学 |
|---|---|
| pip install / requirements.txt | 5.2 立的规矩,这次换包名再走一遍;pip install -r ≈ 前端 npm install |
| REPL 敲一行出一行 | GFG 教程里大量 >>> 就是 REPL;现在明白它是什么了 |
| pypinyin / snownlp 用法 | GFG 的第三方库章节;嵌套列表、Style 参数 |
| 「别重新造轮子」 | 4.2 npm 装 animejs 是同一思想——前端生态也这么干 |
| requirements.txt | 后端的 package.json |
这节几乎全在 Python 主线,和 GFG 笔记同频——区别是你第一次带着自己的产品需求去选库,而不是照教程跑。
关键概念
- PyPI:Python 公共包仓库(≈ npm registry)。
- 重新造轮子:自己重写别人早已成熟的实现,费时还更糙。
- REPL:交互式解释器,敲一行立即执行回显,适合快速试库。
- README:项目门面,装法、函数、用法示例都在首页说明。
- jieba:中文分词库,中文 NLP 第一步。
- requirements.txt:依赖清单,
pip install -r复现环境。
代码 / 实操
bash
cd ~/zero-to-tech/backend && source .venv/bin/activate
pip install pypinyin snownlp
python3
# >>> from pypinyin import lazy_pinyin, Style
# >>> lazy_pinyin("重庆", style=Style.TONE)
# >>> from snownlp import SnowNLP
# >>> SnowNLP("今天的风很轻").sentiments
# >>> exit()
pip freeze > requirements.txt我的收获
- 这节学的不是两个库,是套路:找库→验库→REPL 玩→接项目,以后任何领域都这套。
- AI 给的包名要自己验——它会幻觉;星数和最近更新是两个快信号。
- REPL 是验库的主场,敲一行看一行,比闷头读文档快得多。
待深入
(待填:没听懂、想回头查的。)