首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
python库安装与使用示例详解
📅 2026/10/29 6:51:10
✍️ 爱科研究院
👁 阅读 3,247
前言「库安装与使用」这个说法里藏着两个容易混淆的概念。第一Python 的「库」分成两类标准库standard library随解释器一起装好import就能用第三方库third-party package要自己下。第二「安装」这个词只对第二类成立——你没办法「安装」json或者datetime它们本来就躺在那里。很多人第一次遇到ModuleNotFoundError时第一反应是「我是不是没装 Python」其实只是把一个第三方包当成了标准库。还有一个高频误解pip install装的东西放进了哪个环境如果你在同一台机器上有多个解释器、多个虚拟环境装错位置是家常便饭症状是「刚才明明装了怎么又找不到了」。本文先把模块、包、库三个词的层级关系理清再讲pip的完整用法然后给出几个只用标准库就能跑通的使用示例最后说明第三方库该怎么稳妥地引入。Python 2.7 已于 2020 年 1 月 1 日停止维护本文所有写法都是 Python 3 的。一、模块、包、库先把层级理清名词英文是什么例子模块module一个.py文件json.py包package含__init__.py的目录命名空间包可省email目录库 / 发行包library / distribution可被pip安装的一个发布单元pip装的一个包标准库standard library随解释器发布的一整套模块json、os、socket第三方库third-party别人发布、需要单独安装见第四节import语句找的是模块pip装的是发行包。一个发行包里可能包含多个模块和子包所以「发行包名」和「import 时写的名字」并不总是一致——这是第四节要专门提醒的地方。# 适用于 Python 3.8import jsonfrom collections import Counterfrom pathlib import Pathprint(json.dumps({a: 1})) # {a: 1}print(Counter(aabbc).most_common(1))print(Path(.).resolve().name)这三行能跑是因为json、collections、pathlib都是标准库不需要装任何东西。二、pip 的完整用法官方的安装方式推荐python -m pip这样能确保 pip 和解释器是配套的。# 需要 Python 3.4pip 随解释器附带在虚拟环境里执行python -m pip --version # 确认 pip 属于哪个解释器python -m pip install 包名 # 安装最新版python -m pip install 包名1.2.3 # 安装指定版本python -m pip install --upgrade 包名 # 升级python -m pip uninstall 包名 # 卸载python -m pip list # 列出已安装的包python -m pip show 包名 # 看版本、依赖、安装位置python -m pip freeze requirements.txt # 导出当前环境的依赖清单python -m pip install -r requirements.txt # 按清单安装几个实用细节pip show的 Location 字段是排查「装到哪去了」最直接的证据。如果它显示的路径不属于你正在用的解释器那就装错地方了。版本约束写在参数里精确匹配、下限、~兼容匹配。约束写法要加引号避免被 shell 当成重定向符号解释。离线或内网环境可以用--no-index --find-links指向本地的包目录。三、标准库使用示例示例一JSON 读写# 适用于 Python 3.8import jsondata {name: 示例, values: [1, 2, 3], ok: True}text json.dumps(data, ensure_asciiFalse, indent2)print(text)restored json.loads(text)print(restored[values][1]) # 2print(type(restored[ok])) # class boolensure_asciiFalse让非 ASCII 字符按原样输出而不是转成转义序列处理中文时几乎必加。indent只是排版参数不影响语义。示例二计数与排序# 适用于 Python 3.8from collections import Counterwords the quick brown fox jumps over the lazy dog the fox.split()c Counter(words)print(c[the]) # 2print(c.most_common(2)) # 出现次数最多的两项print(sorted(c)) # 按词本身排序的键列表Counter是dict的子类取值时即使键不存在也返回0而不是抛KeyError这是它和普通字典最容易察觉的区别。示例三路径与文件# 适用于 Python 3.8from pathlib import Pathbase Path(demo)base.mkdir(exist_okTrue)target base / note.txttarget.write_text(第一行\n第二行\n, encodingutf-8)print(target.read_text(encodingutf-8).splitlines())print(target.suffix, target.stem, target.parent.name)pathlib用/运算符拼路径比字符串拼接更可读显式写encodingutf-8能避免不同平台默认编码不一致造成的乱码。示例四日期与时间# 适用于 Python 3.8from datetime import datetime, timedeltanow datetime.now()print(now.isoformat(timespecseconds))later now timedelta(days7)print((later - now).days) # 7datetime是不可变的now timedelta(...)返回新对象原对象不变——这一点和列表的完全是两回事。四、第三方库怎么引入第三方库的通用流程是先装再import。装之前建议先pip show 包名看是否已经存在避免重复安装。# 需要 Python 3.4示例流程python -m pip show 包名 || python -m pip install 包名python -c import 包名; print(包名.__version__)import 之后用print(模块.__version__)确认版本是常见做法但要注意并非所有包都提供__version__属性没有的时候这条命令会抛AttributeError改用python -m pip show 包名看版本更可靠。第三方库的具体函数名、参数名和返回类型请一律以该库的官方文档为准。本文不列出任何未经核对的第三方 API——网络上有大量复制粘贴的示例代码参数名早就随着版本改掉了照抄很容易踩坑。选库时看三个信号官方文档是否完整、最近一次发布距今多久、是否声明了支持的 Python 版本范围。最后一个尤其重要装一个只支持到 3.7 的库到 3.12 环境里装得上不代表跑得动。五、依赖清单与复现requirements.txt是跨环境复现的标准做法。# requirements.txt 的常见形态# 直接依赖允许小版本浮动requests2.28# 精确锁定flask2.3.2# 从本地目录安装./local_package# 需要 Python 3.4python -m venv .venvsource .venv/bin/activate # Windows 用 .venv\Scripts\activatepython -m pip install -r requirements.txtpython -m pip freeze locked.txt # 生成带精确版本的锁定清单区分两份清单很实用requirements.txt写你直接依赖的东西允许合理浮动locked.txt由freeze生成包含全部传递依赖的精确版本用于生产环境复现。常见坑点把第三方包当成标准库❌ 直接import 某个第三方包报ModuleNotFoundError然后去重装 Python。✅ 先分清标准库和第三方库。标准库不需要装第三方的要用python -m pip install 包名装当前这个环境里。用pip而不是python -m pip❌ 机器上有多个解释器pip install装到了 Apython跑的是 B于是「装了却 import 不到」。✅ 用python -m pip install并用python -m pip show 包名的 Location 字段核对安装位置。忘记激活虚拟环境❌ 在全局环境里装了一堆包项目间版本互相打架。✅ 每个项目一个 venv装包前确认命令提示符前面有环境名或者用环境内解释器的绝对路径。发行包名和 import 名不一样❌ 以为pip install的名字就是import的名字。✅ 两者可能不同。装完用python -c import 实际模块名验证一次具体以该库文档为准。pip freeze当成依赖声明用❌ 把freeze出来的上百行清单直接当项目依赖文件里面混进了只在开发机上存在的包。✅freeze用于锁定复现声明依赖手写只列直接依赖。版本约束不加引号❌ 写pip install 包名1.0被 shell 当成重定向报奇怪的错误。✅ 加引号python -m pip install 包名1.0。import之后用__version__判断版本❌ 用模块.__version__判断版本遇到不提供该属性的包直接抛AttributeError。✅ 用python -m pip show 包名看版本它对所有包都有效。用pip install --user却搞混了用户目录❌ 全局和用户目录里各有一份同名包import 到哪一份取决于sys.path顺序非常难排查。✅ 尽量用虚拟环境隔离发现异常先用python -c import 模块; print(模块.__file__)定位实际加载的是哪一份。总结需求命令 / 写法看装了没有python -m pip show 包名安装python -m pip install 包名装到指定环境先激活 venv 再执行上面两条确认 import 到哪个文件python -c import 模块; print(模块.__file__)导出 / 还原python -m pip freeze/python -m pip install -r标准库优先、第三方按需装、每装一个都确认它落进了哪个环境——这三条落实了「库安装与使用」就不再是玄学。第三方库的 API 细节永远以官方文档为准别信二手代码片段。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/29 6:51:10
智能体自主迭代:让系统越用越准的工程机制
2026/10/29 6:51:10
软考历年真题高效备考:多科目归档、考点映射与三遍刷题法
2026/10/29 6:51:10
AI短剧全自动生产系统:从剧本到成片的革命性技术
2026/10/29 8:01:15
智能体工作流:AI自动化任务处理的核心技术解析
2026/10/29 8:01:15
机械手触觉感知与AI生成式交互技术解析
2026/10/29 8:01:15
多页文档OCR技术:大模型解决方案与工程实践
2026/10/29 8:01:15
全英文大数据实验报告写作指南:从结构到LaTeX排版实战
2026/10/29 8:01:15
AI品牌力洞察平台:数据驱动的营销决策新范式
2026/10/29 7:56:15
MATLAB+CST联合仿真:自动化天线与滤波器参数扫描优化闭环
2026/10/29 0:00:09
服务器巡检报告模板怎么写:从检查项到PowerShell数据回填
2026/10/29 0:00:09
Zed编辑器Split Diff功能深度评测与优化指南
2026/10/29 0:00:09
OpenAI新模型定价解析:基础档便宜八成,快档贵六倍值不值?
2026/10/28 12:27:10
全国计算机二级C语言真题PDF高效刷题指南
2026/10/28 15:37:16
requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南
2026/10/28 12:37:46
递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现
2026/10/28 15:37:16
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/28 15:37:15
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/28 15:37:15
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)