2026-09-20 · 7 min read

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 有知识截止,还会一本正经编不存在的包名(幻觉),甚至有坏人抢注这种名字放恶意代码。立规矩:候选到手必须自己验。

验库两层

  1. 靠不靠谱:GitHub 星数(人气/信任)+ 最近更新时间(还活着吗);
  2. 能不能用:翻 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  → 任何人/未来的服务器一条命令复现环境

找库→验库→REPL→接项目 的套路

和 GFG / 课程笔记的连接

这节内容GFG / 已学
pip install / requirements.txt5.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

我的收获

  1. 这节学的不是两个库,是套路:找库→验库→REPL 玩→接项目,以后任何领域都这套。
  2. AI 给的包名要自己验——它会幻觉;星数和最近更新是两个快信号。
  3. REPL 是验库的主场,敲一行看一行,比闷头读文档快得多。

待深入

(待填:没听懂、想回头查的。)