文章目录
- 1. venv
- 2. virtualenv
- 3. Pipenv
- 4. pyenv
- 5. Conda
- 6. Poetry
- 7. PDM
- 8. Huak
- 9. Pixi
- 10. Rye
- 11. uv
- 《Python从入门到精通(第3版)(软件开发视频大讲堂)》
- 编辑推荐
- 内容简介
- 作者简介
- 目录
以下文章来源于Python学研大本营 ,作者学研君
Python 虚拟环境让不同项目在独立的环境里运行,从而让各项目的支持库相互独立,避免在使用不同版本的支持库时导致冲突。
当创建新的 Python 项目时,最好先创建一个新的虚拟环境,并在这个虚拟环境中安装 Python 支持库。
在虚拟环境中安装、升级、卸载 Python 支持库不会影响其他项目的虚拟环境。
此外,使用虚拟环境还有利于项目的移植与复用。
本文介绍 11 款常用的 Python 虚拟环境管理器。
1. venv
venv 是 Python 内置标准库中创建轻量级虚拟环境的工具。
venv 的功能简单,无需单独安装,但如果你需要更好用的虚拟环境管理器,请继续往下看。
v e n v venv venv
2. virtualenv
virtualenv 是用于创建 Python 虚拟环境的工具。虽然自 Python 3.3 起,virtualenv 的部分功能已经整合到 venv 模块中,但 virtualenv 仍然保留了其特有的优势。
相较于 venv,virtualenv 创建虚拟环境的速度更快。
此外,virtualenv 提供了更多的扩展和选项,能够灵活地创建多种 Python 版本的虚拟环境,并且可以通过 pip 快速升级。
v i r t u a l e n v virtualenv virtualenv
3. Pipenv
Pipenv 弥合了 pip、python 和 virtualenv 之间的差距。
使用 Pipfile 和 Pipfile.lock 文件,Pipenv 可以指定 Python 的版本和支持库,并与 pyenv 进行交互操作,生成构建项目锁文件。
Pipenv 自动为项目创建虚拟环境,在安装、卸载支持库时根据需要更新 Pipfile。
Pipenv 的目标是为开发者提供一致的开发环境,不再需要分别使用 pip 和 virtualenv。
P i p e n v Pipenv Pipenv
4. pyenv
Pyenv 让开发者可以在多个 Python 版本之间轻松切换,解决了 venv 不能创建不同 Python 版本虚拟环境的限制。
Pyenv 支持在不同项目中切换 Python 版本。
但是,开发者有时会滥用 pyenv 设置全局的 Python 版本,导致项目之间的 Python 版本混乱,影响项目的复用和开发环境的稳定。
Pyenv 的理念很简单,秉承了 UNIX 哲学中单一用途工具的传统,它源自于 rbenv 和 ruby-build,并专门为 Python 进行了修改和适配。
与同类工具不同,pyenv 完全由纯 Shell 脚本实现,不依赖 Python,无需担心 Python 引导问题。
Pyenv 通过修改操作系统的 PATH 环境变量,可不同 Python 版本之间切换,并能同时运行多个 Python 版本的命令,在不同 Python 环境下进行测试和开发时特别实用。
pyenv 主要用于切换 Python 版本,并不直接管理虚拟环境。不过,可以结合 pyenv 与 virtualenv 命令,或使用 pyenv-virtualenv 插件管理虚拟环境。
pyenv 目前已经成为 Python 开发者创建虚拟环境的首选工具之一。
p y e n v pyenv pyenv
5. Conda
Conda 是由 Anaconda 出品的命令行工具,用于在 Windows、macOS 和 Linux 上管理虚拟环境。
它不仅能管理 Python 支持库,还能处理非 Python 支持库,尤其针对数据科学方面的开发进行了优化。
Conda 使用自己的 Conda 虚拟环境切换非 Python 依赖项,无需使用复杂的 Docker。
与 Poetry 类似,Conda 在构建环境时执行完整的支持库解析,其支持库解析器 libmamba 是用 C++ 实现的,速度更快。
Conda 受到了数据科学开发人员的欢迎,但其用户体验仍有改进空间。
尽管如此,Conda 仍是 Python 生态系统中使用最广泛的工具之一,尤其是在与 Ray 和 Metaflow 等第三方工具集成时。
$$conda$4
6. Poetry
Poetry 支持安装和更新支持库,提供锁文件以确保项目的复用,并能构建项目分发包。
Poetry 需要 Python 3.8+,跨平台支持 Linux、macOS 和 Windows。
Poetry 类似于 Cargo(Rust 的包管理器) 和 npm(Node.js 的包管理器),是 Python 生态系统中使用体验与这两个包最接近的工具。
类似于 Conda,Poetry 预先解析完整的依赖图,并按拓扑顺序安装支持库。
Poetry 依据 pyproject.toml 管理项目内外的虚拟环境。
poetry.lock 文件可以确保项目的复用,但体积较大。
此外,Poetry 还兼具构建工具功能,可以发布 Python 包。
Poetry 的解析速度较慢,部分是因为 Python 包声明支持库的方式不一致,可能会导致支持库解析的时间较长。
P o e t r y Poetry Poetry
7. PDM
PDM 的目标是成为新生代 Python 支持库管理工具。
与 Poetry 类似,PDM 也是一款快速的支持库解析器,主要用于大型二进制文件分发。
它具备灵活强大的插件系统和多功能用户脚本。
此外,PDM 还可以使用 indygreg 的 python-build-standalone 安装 Python,并支持类似 pnpm 的集中式安装缓存。
PDM 与 Poetry 的主要区别在于,PDM 支持 PEP-582,将虚拟环境集成到项目目录中,避免了传统虚拟环境的手动激活和停用,提高了开发效率。
P D M PDM PDM
8. Huak
Huak 是使用 Rust 开发的 Python 包管理器。
JavaScript 社区目前已经出现了向 Rust 转型的趋势,Huak 也希望将 Rust 引入 Python 生态系统。
Rust 生态系统上手体验很出色,Cargo 起了很大的作用。
Huak 希望为 Python 提供相同的体验,它的目标是要达到极致速度。
Huak 的理念是改善开发者体验,使其在开发 Python 项目时享受与 Cargo 类似的流畅感。
虽然目前 Huak 仍处于实验阶段,但其未来潜力巨大,值得关注。
H u a k Huak Huak
9. Pixi
Pixi 是基于 Rust 的 rattler 库开发的,具有显著的性能和安全优势。
它的理念是提供类似于 cargo 或 yarn 的开发体验。
Pixi 目标是直接取代 Conda,并能像 Conda 一样管理非 Python 依赖项。
2024 年 2 月,为了追求更快的速度,Pixi 将后台的 rip 改为 uv。
与 Conda 和 mamba 不同,Pixi 提供了自定义类型的锁文件,使其在复用方面领先于 Conda。
Pixi 支持可复用的方式安装支持库,并支持 Python、C++ 和 R 等多种语言, 且兼容所有主流操作系统。
Pixi 还提供了简洁而强大的命令行界面,使得支持库管理更加简单、高效。
P i x i Pixi Pixi
10. Rye
Rye 由 Astral.sh 开发,也是基于 Rust 构建的,旨在提升开发效率和用户体验。
与传统的包管理工具相比,Rye 的性能有显著提升,功能也更加丰富。
Rye 希望为 Python 开发者提供一站式的工具,让 Python 支持库的安装与管理更加轻松。
Rye 使用与 uv 相同的支持库解析器,提供更快的管理体验。
Rye 还提供了与 poetry 类似的功能,但速度更快。
R y e Rye Rye
11. uv
uv 也是 Astral.sh 出品的 Python 虚拟环境管理器,是当前备受期待的新生代包管理工具。
uv 的目标是取代 pip,同时具备与 Cargo 类似的功能。
uv 支持 Python 打包工具的所有特性,包括可编辑安装、Git 依赖、URL 依赖、本地依赖、约束文件和源码分发等。
Astral.sh 还开发了 Rust 生态中备受开发者喜爱的 ruff (用 Rust 开发的高性能 Python 代码检查和代码格式化工具)。
与 poetry 类似,uv 通过 pyproject.toml 管理项目,得益于 Rust 的高效算法,其解析速度至少比 poetry 快一个量级。
目前,uv 还没有推出稳定版,但其性能测试结果让人期待。
u v 与主流虚拟环境管理器的性能测试对比 uv 与主流虚拟环境管理器的性能测试对比 uv与主流虚拟环境管理器的性能测试对比
uv 在性能方面表现优异,相较于 pip 和 pip-tools,在没有缓存时快 8~10 倍,在有缓存时快 80~115 倍。
uv 创建虚拟环境的速度比 venv 快 80 倍,比 virtualenv 快 7 倍,并且不依赖于 Python。
总之,uv 作为高效且兼容性强的包管理工具,有望取代 poetry 等工具。
随着 uv 功能的不断增强,将来可能会与 Rye 进行合并。
u v uv uv
***
《Python从入门到精通(第3版)(软件开发视频大讲堂)》
- 获取方式:https://item.jd.com/14055900.html
编辑推荐
“软件开发视频大讲堂”丛书是清华社计算机专业基础类零售图书畅销品牌之一。
(1)2008—2023年,丛书累计修订7次,销售400万册,深受广大程序员喜爱。
(2)4本荣获“全行业优畅销书”奖,1本荣获清华社“专业畅销书”一等奖,多数品种在全国计算机零售图书排行榜排行中名列前茅。
(3)实用、易懂、资源丰富,被数百所高校选为专业课教材。
《Python从入门到精通(第3版)》以长更新稳定版本Python 3.11.0为基础,图书特点如下。
- 学通Python只需要4步:基础知识→核心技术→高级应用→项目实战,符合认知规律。
- 271集同步教学微课+强化实战训练+在线答疑,夯实基础,精准,有效,速练,适合自学。
- 127个应用实例+32个综合练习+5个项目案例,学习1小时,训练10小时,从入门到项目上线,真正成为Python高手。
- 根据图书首页说明,扫描书中二维码,打开明日科技账号注册页面,填写注册信息后将自动获取Python开发资源库一年(自注册之日起)的VIP使用权限。
(1)技术资源库:1456个技术要点,系统、全面,随时随地学习。
(2)技巧资源库:583个开发技巧,快速扫除盲区,掌握更多实战技巧,精准避坑。
(3)实例资源库:227个应用实例,含大量热点实例和关键实例,巩固编程技能。
(4)项目资源库:44个实战项目,快速积累项目经验,总有一个你找工作会用到。
(5)源码资源库:211项源代码详细分析,多读源码,快速成长。
(6)视频资源库:598集学习视频,边看视频边学习,提升更快。
(7)面试资源库:Python企业面试真题,合理职业规划,快速就业。
学会、用好Python开发资源库,可在短时间内从小白晋升为一名软件工程师。 - 在线解答,高效学习。
(1)关注清大文森学堂公众号,可加入本书的学习交流群,参加图书直播答疑。
(2)关注清大文森学堂公众号,可参加Python训练营,获取Python就业知识、Python技术/行业热点动态、面试辅导等直播课。
内容简介
《Python从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分27章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、文件及目录操作、操作数据库、使用进程和线程、网络编程、异常处理及程序调试、Pygame游戏编程、推箱子游戏、网络爬虫开发、火车票分析助手、数据可视化、京东电商销售数据分析与预测、Web编程、Flask框架、e起去旅行网站、Python自动化办公、AI图像识别工具等内容。书中所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。
作者简介
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
目录
第1篇 基础知识第1章 初识Python视频讲解:77分钟1.1 Python简介1.1.1 什么是Python1.1.2 Python的版本1.1.3 Python能做什么1.2 搭建Python开发环境1.2.1 开发环境概述1.2.2 安装Python1.2.3 编写第一个Python程序1.2.4 运行已经编写好的.py文件1.3 Python开发工具1.3.1 使用自带的IDLE1.3.2 使用Visual Studio Code1.3.3 常用的第三方开发工具1.4 实践与练习第2章 Python语言基础视频讲解:145分钟2.1 Python语法特点2.1.1 注释规则2.1.2 代码缩进2.1.3 编码规范2.2 Python中的变量2.2.1 保留字与标识符2.2.2 理解Python中的变量2.2.3 定义变量2.3 基本数据类型2.3.1 数字2.3.2 字符串2.3.3 布尔类型2.3.4 数据类型转换2.4 基本输入和输出2.4.1 使用input()函数输入2.4.2 使用print()函数输出2.4.3 使用pprint()函数输出2.5 实践与练习第3章 运算符与表达式视频讲解:70分钟3.1 运算符3.1.1 算术运算符3.1.2 赋值运算符3.1.3 比较(关系)运算符3.1.4 逻辑运算符3.1.5 位运算符3.2 运算符的优先级3.3 条件表达式3.4 实践与练习第4章 流程控制语句视频讲解:139分钟4.1 程序结构4.2 选择语句4.2.1 最简单的if语句4.2.2 if…else语句4.2.3 if…elif…else语句4.2.4 选择语句的嵌套4.2.5 match…case语句4.3 循环语句4.3.1 while循环4.3.2 for循环4.3.3 循环嵌套4.4 break、continue和pass语句4.4.1 break语句4.4.2 continue语句4.4.3 pass语句4.5 实践与练习第5章 列表和元组视频讲解:202分钟5.1 序列概述5.1.1 索引5.1.2 切片5.1.3 序列相加5.1.4 乘法5.1.5 检查某个元素是否是序列的成员(元素)5.1.6 计算序列的长度、最大值和最小值5.2 列表5.2.1 列表的创建和删除5.2.2 访问列表元素5.2.3 遍历列表5.2.4 添加、修改和删除列表元素5.2.5 对列表进行统计计算5.2.6 对列表进行排序5.2.7 列表推导式5.2.8 二维列表5.3 元组5.3.1 元组的创建和删除5.3.2 访问元组元素5.3.3 修改元组5.3.4 元组推导式5.3.5 元组与列表的区别5.4 实践与练习第6章 字典和集合视频讲解:86分钟6.1 字典6.1.1 字典的创建和删除6.1.2 访问字典6.1.3 遍历字典6.1.4 添加、修改和删除字典元素6.1.5 字典推导式6.2 集合6.2.1 创建集合6.2.2 向集合中添加和删除元素6.2.3 集合的交集、并集和差集运算6.3 实践与练习第7章 字符串视频讲解:118分钟7.1 字符串编码转换7.1.1 使用encode()方法编码7.1.2 使用decode()方法解码7.2 字符串常用操作7.2.1 拼接字符串7.2.2 计算字符串的长度7.2.3 截取字符串7.2.4 分割、合并字符串7.2.5 检索字符串7.2.6 字母的大小写转换7.2.7 去除字符串中的空格和特殊字符7.2.8 格式化字符串7.3 实践与练习第2篇 进阶提高第8章 Python中使用正则表达式视频讲解:45分钟8.1 正则表达式语法8.1.1 行定位符8.1.2 元字符8.1.3 限定符8.1.4 字符类8.1.5 排除字符8.1.6 选择字符8.1.7 转义字符8.1.8 分组8.1.9 在Python中使用正则表达式语法8.2 使用re模块实现正则表达式操作8.2.1 匹配字符串8.2.2 替换字符串8.2.3 使用正则表达式分割字符串8.3 实践与练习第9章 函数视频讲解:118分钟9.1 函数的创建和调用9.1.1 创建一个函数9.1.2 调用函数9.2 参数传递9.2.1 了解形式参数和实际参数9.2.2 位置参数9.2.3 关键字参数9.2.4 为参数设置默认值9.2.5 可变参数9.2.6 类型联合运算符9.3 返回值9.4 变量的作用域9.4.1 局部变量9.4.2 全局变量9.5 匿名函数9.6 实践与练习第10章 面向对象程序设计视频讲解:109分钟10.1 面向对象概述10.1.1 对象10.1.2 类10.1.3 面向对象程序设计的特点10.2 类的定义和使用10.2.1 定义类10.2.2 创建类的实例10.2.3 创建__init__()方法10.2.4 创建类的成员并访问10.2.5 访问限制10.3 属性10.3.1 创建用于计算的属性10.3.2 为属性添加安全保护机制10.4 继承10.4.1 继承的基本语法10.4.2 方法重写10.4.3 派生类中调用基类的__init__()方法10.5 实践与练习第11章 模块视频讲解:105分钟11.1 模块概述11.2 自定义模块11.2.1 创建模块11.2.2 使用import语句导入模块11.2.3 使用from…import语句导入模块11.2.4 模块搜索目录11.3 Python中的包11.3.1 Python程序的包结构11.3.2 创建和使用包11.3.3 以主程序的形式执行11.4 引用其他模块11.4.1 导入和使用标准模块11.4.2 第三方模块的下载与安装11.5 实践与练习第12章 文件及目录操作视频讲解:140分钟12.1 基本文件操作12.1.1 创建和打开文件12.1.2 关闭文件12.1.3 打开文件时使用with语句12.1.4 写入文件内容12.1.5 读取文件12.2 目录操作12.2.1 os和os.path模块12.2.2 路径12.2.3 判断目录是否存在12.2.4 创建目录12.2.5 删除目录12.2.6 遍历目录12.3 高级文件操作12.3.1 删除文件12.3.2 重命名文件和目录12.3.3 获取文件基本信息12.4 实践与练习第13章 操作数据库视频讲解:79分钟13.1 数据库编程接口13.1.1 连接对象13.1.2 游标对象13.2 使用SQLite13.2.1 创建数据库文件13.2.2 操作SQLite13.3 使用MySQL13.3.1 下载和安装MySQL13.3.2 安装PyMySQL13.3.3 连接数据库13.3.4 创建数据表13.3.5 操作MySQL数据表13.4 实践与练习第14章 使用进程和线程视频讲解:104分钟14.1 什么是进程14.2 创建进程的常用方式14.2.1 使用multiprocessing模块创建进程14.2.2 使用Process子类创建进程14.2.3 使用进程池Pool创建进程14.3 进程间通信14.3.1 队列简介14.3.2 多进程队列的使用14.3.3 使用队列在进程间通信14.4 什么是线程14.5 创建线程14.5.1 使用threading模块创建线程14.5.2 使用Thread子类创建线程14.6 线程间通信14.6.1 什么是互斥锁14.6.2 使用互斥锁14.6.3 使用队列在线程间进行通信14.7 异步编程asyncio模块14.7.1 什么是异步编程14.7.2 创建协程任务14.7.3 使用协程执行多个耗时任务14.7.4 协程嵌套与列表推导式14.8 实践与练习第15章 网络编程视频讲解:60分钟15.1 网络基础15.1.1 为什么要使用通信协议15.1.2 TCP/IP简介15.1.3 UDP简介15.1.4 socket简介15.2 TCP编程15.2.1 创建TCP服务器15.2.2 创建TCP客户端15.2.3 执行TCP服务器和客户端15.3 UDP编程15.3.1 创建UDP服务器15.3.2 创建UDP客户端15.3.3 执行UDP服务器和客户端15.4 实践与练习第16章 异常处理及程序调试视频讲解:60分钟16.1 异常概述16.2 异常处理语句16.2.1 try…except语句16.2.2 try…except…else语句16.2.3 try…except…finally语句16.2.4 使用raise语句抛出异常16.2.5 更清晰的错误信息16.3 程序调试16.3.1 使用自带的IDLE进行程序调试16.3.2 使用assert语句调试程序16.4 实践与练习第3篇 项目应用游戏开发与项目第17章 Pygame游戏编程视频讲解:50分钟17.1 初识Pygame17.1.1 安装Pygame17.1.2 Pygame常用模块17.2 窗口坐标系与pygame.Rect对象17.2.1 窗口坐标系17.2.2 pygame.Rect对象17.3 事件侦测17.3.1 事件检索17.3.2 处理键盘事件17.3.3 自定义事件17.4 位图图形17.4.1 位图基础17.4.2 Surface对象17.4.3 Rect矩形对象17.5 音频控制17.5.1 设备的初始化17.5.2 加载声音文件17.5.3 控制声音流第18章 推箱子游戏视频讲解:3分钟18.1 需求分析18.2 案例准备18.3 业务流程18.4 实现过程18.4.1 文件夹组织结构18.4.2 搭建主框架18.4.3 绘制游戏地图18.4.4 用键盘控制角色移动18.4.5 判断游戏是否通关18.4.6 记录步数18.4.7 撤销角色已移动功能18.4.8 重玩此关的实现18.4.9 游戏进入下一关爬虫开发与项目第19章 网络爬虫开发视频讲解:90分钟19.1 初识网络爬虫19.1.1 网络爬虫概述19.1.2 网络爬虫的分类19.1.3 网络爬虫的基本原理19.2 网络爬虫的常用技术19.2.1 Python的网络请求19.2.2 请求headers处理19.2.3 网络超时19.2.4 代理服务19.2.5 HTML解析之BeautifulSoup19.3 网络爬虫开发常用框架Scrapy19.3.1 安装Scrapy爬虫框架19.3.2 创建Scrapy项目19.3.3 创建爬虫第20章 火车票分析助手视频讲解:4分钟20.1 需求分析20.2 案例准备20.3 业务流程20.4 主窗体的UI设计20.4.1 主窗体的布局20.4.2 主窗体显示效果20.5 爬取数据20.5.1 获取请求地址与参数20.5.2 下载数据文件20.5.3 查询所有车票信息20.5.4 卧铺票的查询与分析20.5.5 查询车票起售时间20.6 窗体的数据显示20.6.1 车票查询区域的数据显示20.6.2 卧铺售票分析区域的数据显示20.6.3 卧铺车票数量走势图的显示20.6.4 查询车票起售时间的数据显示数据可视化与项目第21章 数据可视化视频讲解:225分钟21.1 初识数据可视化21.1.1 什么是数据可视化21.1.2 数据可视化的作用21.1.3 数据可视化常用工具21.2 NumPy数值计算21.2.1 安装NumPy21.2.2 NumPy的数据类型21.2.3 ndarray数组对象21.2.4 dtype数据类型对象21.2.5 数组的基本操作21.3 pandas数据处理21.3.1 pandas数据结构21.3.2 读写数据21.3.3 数据操作21.4 Matplotlib绘制常用图表21.4.1 绘制柱形图21.4.2 绘制折线图21.4.3 绘制散点图21.4.4 绘制饼形图第22章 京东电商销售数据分析与预测视频讲解:3分钟22.1 需求分析22.2 案例准备22.3 业务流程22.4 分析方法22.5 实现过程22.5.1 日期数据统计并显示22.5.2 销售收入分析22.5.3 销售收入与广告费相关性分析22.5.4 销售收入预测22.5.5 预测评分Web开发与项目第23章 Web编程视频讲解:93分钟23.1 Web基础23.1.1 HTTP协议23.1.2 Web服务器23.1.3 前端基础23.1.4 静态服务器23.2 WSGI接口23.2.1 CGI简介23.2.2 WSGI简介23.2.3 定义WSGI接口23.2.4 运行WSGI服务23.3 Web框架23.3.1 什么是Web框架23.3.2 Python中常用的Web框架第24章 Flask框架视频讲解:75分钟24.1 Flask简介24.1.1 安装虚拟环境24.1.2 安装Flask24.1.3 第一个Flask程序24.2 Flask基础24.2.1 开启调试模式24.2.2 路由24.2.3 静态文件24.2.4 蓝图24.3 模板24.3.1 渲染模板24.3.2 变量24.3.3 控制结构24.4 Web表单24.4.1 CSRF保护和验证24.4.2 表单类24.4.3 把表单渲染成HTML第25章 e起去旅行网站视频讲解:147分钟25.1 系统功能设计25.1.1 系统功能结构25.1.2 系统业务流程25.2 系统开发必备25.2.1 系统开发环境25.2.2 文件夹组织结构25.3 数据库设计25.3.1 数据库概要说明25.3.2 数据表模型25.3.3 数据表关系25.4 前台用户模块设计25.4.1 会员注册功能实现25.4.2 会员登录功能实现25.4.3 会员退出功能实现25.5 前台首页模块设计25.5.1 推荐景区功能实现25.5.2 推荐地区功能实现25.5.3 搜索景区功能实现25.6 景区模块设计25.6.1 查看景区功能实现25.6.2 查看游记功能实现25.6.3 收藏景区功能实现25.6.4 查看收藏景区功能实现25.7 关于我们模块设计25.8 后台模块设计25.8.1 管理员登录功能实现25.8.2 景区管理功能实现25.8.3 地区管理功能实现25.8.4 游记管理功能实现25.8.5 会员管理功能实现25.8.6 日志管理功能实现Python自动化办公第26章 Python自动化办公视频讲解:31分钟26.1 使用Python操作Word26.1.1 将Word文件转换为PDF文件26.1.2 将多个Word文件合并为一个PDF文件26.1.3 提取Word文档目录26.1.4 替换Word文档中的内容26.1.5 统计并汇总Word文档中的页码26.2 使用Python操作Excel26.2.1 爬取数据并将其导出到Excel中26.2.2 批量复制Excel中的Sheet页26.3 使用Python操作PPT26.4 使用Python操作电子邮件26.4.1 发送HTML格式电子邮件26.4.2 发送带附件的电子邮件Python人工智能初探第27章 AI图像识别工具视频讲解:94分钟27.1 需求分析27.2 系统设计流程27.3 系统开发必备27.3.1 系统开发环境27.3.2 文件夹组织结构27.4 开发前的准备工作27.4.1 申请百度AI接口27.4.2 urllib、urllib.request模块27.4.3 json模块27.5 AI图像识别工具的开发27.5.1 根据项目设计制作窗体27.5.2 添加分类27.5.3 选择识别的图片27.5.4 银行卡图像识别27.5.5 植物图像识别27.5.6 复制识别结果到剪贴板中附录A PyCharm开发工具的使用