11款常用的Python虚拟环境管理器,最受推崇的居然是最后一个

#生成式 AI 的发展方向,是 Chat 还是 Agent?#


以下文章来源于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版)(软件开发视频大讲堂)》

在这里插入图片描述

在这里插入图片描述

编辑推荐

“软件开发视频大讲堂”丛书是清华社计算机专业基础类零售图书畅销品牌之一。
(1)2008—2023年,丛书累计修订7次,销售400万册,深受广大程序员喜爱。
(2)4本荣获“全行业优畅销书”奖,1本荣获清华社“专业畅销书”一等奖,多数品种在全国计算机零售图书排行榜排行中名列前茅。
(3)实用、易懂、资源丰富,被数百所高校选为专业课教材。
《Python从入门到精通(第3版)》以长更新稳定版本Python 3.11.0为基础,图书特点如下。

  1. 学通Python只需要4步:基础知识→核心技术→高级应用→项目实战,符合认知规律。
  2. 271集同步教学微课+强化实战训练+在线答疑,夯实基础,精准,有效,速练,适合自学。
  3. 127个应用实例+32个综合练习+5个项目案例,学习1小时,训练10小时,从入门到项目上线,真正成为Python高手。
  4. 根据图书首页说明,扫描书中二维码,打开明日科技账号注册页面,填写注册信息后将自动获取Python开发资源库一年(自注册之日起)的VIP使用权限。
    (1)技术资源库:1456个技术要点,系统、全面,随时随地学习。
    (2)技巧资源库:583个开发技巧,快速扫除盲区,掌握更多实战技巧,精准避坑。
    (3)实例资源库:227个应用实例,含大量热点实例和关键实例,巩固编程技能。
    (4)项目资源库:44个实战项目,快速积累项目经验,总有一个你找工作会用到。
    (5)源码资源库:211项源代码详细分析,多读源码,快速成长。
    (6)视频资源库:598集学习视频,边看视频边学习,提升更快。
    (7)面试资源库:Python企业面试真题,合理职业规划,快速就业。
    学会、用好Python开发资源库,可在短时间内从小白晋升为一名软件工程师。
  5. 在线解答,高效学习。
    (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 什么是Python

1.1.2 Python的版本

1.1.3 Python能做什么

1.2 搭建Python开发环境

1.2.1 开发环境概述

1.2.2 安装Python

1.2.3 编写第一个Python程序

1.2.4 运行已经编写好的.py文件

1.3 Python开发工具

1.3.1 使用自带的IDLE

1.3.2 使用Visual Studio Code

1.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 使用SQLite

13.2.1 创建数据库文件

13.2.2 操作SQLite

13.3 使用MySQL

13.3.1 下载和安装MySQL

13.3.2 安装PyMySQL

13.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 初识Pygame

17.1.1 安装Pygame

17.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解析之BeautifulSoup

19.3 网络爬虫开发常用框架Scrapy

19.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 安装NumPy

21.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 安装Flask

24.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操作Word

26.1.1 将Word文件转换为PDF文件

26.1.2 将多个Word文件合并为一个PDF文件

26.1.3 提取Word文档目录

26.1.4 替换Word文档中的内容

26.1.5 统计并汇总Word文档中的页码

26.2 使用Python操作Excel

26.2.1 爬取数据并将其导出到Excel中

26.2.2 批量复制Excel中的Sheet页

26.3 使用Python操作PPT

26.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开发工具的使用
  • 95
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 74
    评论
评论 74
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序边界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值