Python-01:介绍及环境搭建
1. Python 介绍
1.1 背景
Python 是一种跨平台、面向对象的解释型计算机程序设计语言,常被称之为胶水语言,于 1989 年发明,第一个公开版本发行于 1991 年,发明人为荷兰人:吉多·范罗苏姆。
解释型语言和编译型语言
- 解释型语言
- 解释型是编程语言的一种特性,这类型特点的编程语言所开发的程序无需预先编译成机器码。程序在执行时,由一个解释器逐行读取源代码,并将其翻译成机器能够理解和执行的指令。
- 解释型语言的优点是编写和调试比较方便,能够快速看到代码修改后的效果。常见的解释型语言有 Python、JavaScript 等。
- 编译型语言
- 编译型语言是指在程序运行之前,需要通过编译器将源代码一次性编译成机器语言的程序,生成可执行文件。之后运行这个可执行文件就可以直接被计算机执行,不需要再次编译。
- 像 C、C++ 就是典型的编译型语言。
Python 在全球的影响力也一直稳居前位,在 2024 年 8 月的 TIOBE 指数排行中,也可以看出 Python 的受欢迎程度和使用频率之高,仍然排在第一的位置。
TIOBE 官网:https://www.tiobe.com/tiobe-index/
1.2 优缺点及应用场景
Python 资源参考:https://github.com/zhoujinjian/awesome-python-cn
优点:
- 简单、易学
- 免费、开源
- 面向对象
- 丰富的库
- 可扩展性
缺点:
- 运行速度较慢
- 好的中文资料匮乏
Python 应用场景:
- Web 应用开发
- 桌面软件
- 服务器软件(网络软件)
- 游戏开发
- 网络爬虫
- 科学计算、云计算
- 人工智能、数据分析
- 自动化运维
2. Python 下载及安装
Python 官网:https://www.python.org/
Python 下载地址:https://www.python.org/downloads/
2.1 Windows 平台安装
在下载列表中选择 Windows 平台安装包,包格式为:python-XYZ.msi 文件,XYZ 为你要安装的版本号。
下载完成后,双击打开下载的安装包。
如果上述步骤后还是无法运行 Python,则可以尝试配置一下 Windows 环境变量:
2.2 Mac 平台安装
Mac 系统一般都自带 Python2.x 版本的环境,可以在官网下载最新版本的,下载完成后双击下载文件开始安装。
安装的过程中一直点击继续即可,中途会有个弹窗出来需要输入电脑密码,之后一直点击继续就能完成安装。
如果安装完后无法直接在终端输入 python 执行,只能输入全名 python3 的话,可以在终端执行下面这条命令:
1 | echo 'alias python=python3' >> .bash_profile |
执行完后,重新打开终端,就能直接使用 python 命令执行了。
2.3 Linux 平台安装
这里以 CentOS 系统安装为例,在 Linux 上安装 Python 需要先安装前置依赖程序。登录到 Linux 中,使用 yum 程序进行依赖程序安装,执行如下命令:
1 | yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-dlevel gcc make zlib zlib-devel libffi-devel -y |
然后到官网下载最新的 Python 版本,拖动刀最下方右键复制链接。
进入到 Linux 系统内,使用 wget 命令,粘贴复制的下载链接,然后进行下载:
1 | cd ~ |
下载完成后,即可以看到已下载好的安装包文件。
解压安装包,执行命令:
1 | tar -xvf Python-3.10.4.tgz |
然后切换目录到解压后的 Python 安装文件夹:
1 | cd Python-3.10.4 |
- 配置
1 | ./configure --prefix=/usr/local/python3.10.4 |
- 编译
1 | make & make install |
编译完成后,可以配置软链接,方便快速使用 Python。
1 | # 删除系统自带的老版本(Python2)的软链接 |
创建软链接后,会破坏 yum 程序的正常使用(只能使用系统自带的 Python2),所以需要修改下面两个文件。
1 | /usr/bin/yum |
使用 vi 编辑器将上面这两个文件的第一行:
1 | #!/usr/bin/python |
修改为:
1 | #!/usr/bin/python2 |
如果还是无法执行 python,则可以尝试添加一下环境变量。Linux 添加环境变量主要是在 /etc/profile 中,输入 export PATH="$PATH:/usr/local/bin/python。
执行以上操作后,Python 会安装在 /usr/local/bin 目录中,Python 库安装在 /usr/local/lib/pythonXX,XX 为你使用的 Python 的版本号。
另外,还可以通过集成软件包 Anaconda 来安装:https://www.anaconda.com/download/
上面执行过程中,如果不小心在终端输入 python 进入了程序,则可以使用 exit() 代码来退出。
3. Python IDE 介绍
Python 的学习过程少不了 IDE 或者代码编辑器,或者集成的开发编辑器(IDE),这些 Python 开发工具帮助开发者加快使用 Python 开发的速度并提高效率,高效的代码编辑器或者 IDE 应该会提供插件、工具等能帮助开发者高效开发的特性。
常见 Phyton IDE:PyCharm(推荐)、Sublime Text、VS Code、Eclipse + Pydev、Emacs、WingIDE、IDLE
3.1 PyCharm 下载
PyCharm 是由 JetBrains 打造的一款 Python IDE。PyCharm 基本具备一切 Python IDE 的所有功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。
PyCharm 有分两个版本,一个是社区版(免费功能有限),一个是专业版(有一些增强功能)。
3.2 虚拟环境
3.2.1 Python 解释器
计算机本来是不认识 Python 代码的,但是 Python 有解释器程序。我们前面安装 Python 环境,本质上其实是在电脑中安装 Python 解释器程序。代码随时都可以写,但是能不能运行,就要看电脑里是否有解释器程序了。
因此 Python 解释器就是一个计算机程序,用来翻译 Python 代码,并提交给计算机执行。对于 Windows 系统来说,Python 解释器的位置就是我们前面 Python 下载的位置,在下载好的文件夹中找到 python.exe 文件,这个其实就是 Python 解释器。
3.2.2 虚拟环境管理工具
不同开发项目需求中,如何保证在不同 Python 版本或依赖包环境下能互不干扰?
如下场景:
- 项目 A 采用 Python2.x,项目 B 采用 Python3.x
- 项目 C 采用 Python 3.x Django 1.x,项目 D 采用 Python 3.x Django 2.x
为了解决这些多版本或多环境共同的情况,就需要引出虚拟环境了:
- virtualenv 是用来创建虚拟环境,让不同的项目拥有自己独立的的运行环境,避免相互干扰。
- pyenv 用来管理多个 Python 版本,比如系统中有一个 2.x 的版本,安装 pyenv 后可以使用 pyenv 安装其他版本的 Python,让系统可以同时支持多个版本,而且不影响系统版本。
- pipenv 它有两个功能,一个是管理依赖(替代 pip 管理工具)、另一个是可以创建虚拟环境。
不过这些都是第三方的虚拟环境,需自己额外去安装,但在 Python3 中我们可以使用自带的虚拟环境 venv。
3.2.3 创建虚拟环境
官方文档:https://docs.python.org/zh-cn/3.7/library/venv.html#moduule-veny
Python3.3 以上的版本通过 venv 模块原生支持虚拟环境,可以代替 Python 之前的 virtualenv。
该 venv 模块提供了创建轻量级 “ 虚拟环境 “,提供与系统 Python 的隔离支持。每一个虚拟环境都有其自己的 Python 二进制(允许有不同的 Python 版本创作环境),并且可以拥有自己独立的一套 Python 包。
- 查看帮助命令:
python3 -m venv --help - 创建虚拟环境:
python3 -m venv py3_env(py3_env 指定所创建虚拟环境的名称)
上面是基于命令行的操作方法,下面我来详细介绍一下在 PyCharm 中如何创建并配置虚拟环境。
新建项目
- 位置选择自己一般存放项目的地方,例如我这里选择存放在 project 文件夹下,并新创建了一个 test_python 文件夹用于存放本项目文件。
- 新的虚拟环境选择基于 “Virtualenv” 这个工具来创建。
- 位置默认为项目文件夹下的 venv 文件夹内(如果没有则自己创建),名称前加
.则正常目录下会进行隐藏。该文件夹创建成功后,会存放 python 解释器和各种库。- 如果项目地址是
E:\projects\test_python - 则虚拟环境的地址就是
E:\projects\test_python\venv - 虚拟环境中的库
E:\projects\test_python\venv\Lib\site-packages
- 如果项目地址是
- 选择基本解释器,一般就选择下载的系统解释器。如果此处为空,则需要添加已安装在电脑中的 Python 路径;若没安装,则点击此处让 PyCharm 帮你自动安装。
- 如果勾选下面的 “Inherit global site-packages”,则会继承 Base interpreter 基本解释器 site-packages 文件夹下的所有库。
- 如果勾选下面的 “Make available to all projects”,则再次创建新项目时,本次选择的 Python 解释器就会显示在 “Previously configured interpreter” 下的解释器列表之中。这样创建该新项目就有两种创建方式,一种是创建新的虚拟环境,一种是使用这里的先前配置的解释器。
- 点击 “Create” 创建新的虚拟环境及项目。
查看虚拟环境
可以在 “Settings” -> “Project:xxx” -> “Python Interpreter” 下,查看 Python 解释器的虚拟环境,例如下面这个 Python 3.12 的解释器下存在两个虚拟环境,一个是 test_python 即刚才新建的虚拟环境,另一个是原来存在的虚拟环境 venv。
另外,也可以通过下图右上角的 “Add Interpreter” 来添加或创建新的虚拟环境。
查看并安装依赖包
我们可以直接点击上图 Package 标题上面的 “+” 号来添加所需的包,例如我下面想添加 requests 包,则可以在搜索栏搜索查找到所需的依赖包,然后点击 “Install Package” 进行下载。下载好的依赖包,会存放到虚拟环境中的 site-packages 文件夹下。
我们也可以在终端 Terminal 通过
pip list命令查看当前虚拟环境下所安装的包,然后通过pip install requests来下载所需包。另外,打开终端后可以发现命令行前出现了一个小括号,里面的名字 .venv 显示的就是我们该项目所使用的虚拟环境名称,显然该虚拟环境 PyCharm 已经帮我们自动激活了。
如果使用的是 Windows 电脑,执行上一步时可能会报错,这是因为当前使用的终端可能不是 cmd 而是 powershell。可以在 “Ssttrings” -> “Tools” -> “Terminal” 下找到 “Shell path”,由于我下图使用的是 mac,所以只存在 /bin/bash,但如果使用的是 Windows 则可以看到两个选项即 cmd 和 powershell,此时选择更改为 cmd 即可。
导出依赖包
如果我们想导出当前虚拟环境所依赖的包然后复制到其它虚拟环境使用的话,则可以使用如下命令:
1 | pip freeze > requirements.txt |
这样我们就可以在目录下获得到一个 requirements.txt 文件,里面存放着该虚拟环境用到的依赖包。
我们可以复制这个 requirements.txt 文件到其它虚拟环境中的目录下,然后执行下面的命令:
1 | pip install -r requirements.txt |
这样其它的虚拟环境也可以复制我当前虚拟环境用到的依赖包,从而快速配置好所需的开发环境。
3.3 PyCharm 常用功能
3.3.1 常用设置
第三方库下载
在 “Settings” -> “Project: xxx” -> “Python Interpreter” 下,可以下载想要的第三方库。
IDE 主题选择
在 “Settings” -> “Appearance & Behavior” -> “Appearance” 下,可以选择自己喜欢的 IDE 主题风格。
IDE 字体大小更改
在 “Setting” -> “Editor” -> “Font” 下,可以更改字体的首选样式(Font)、大小(Size)以及行间距(Line height)。
查看项目文件的结构
通过 “View” -> “Tool Windows” -> “Structure” 可以打开这个功能,在 IDE 的左下方能看到这个模块,在这个模块中可以看到当前文件的结构。
插件安装
在 “Settings” -> “Editor” -> “Plugins” 下,可以安装自己心仪的插件,通过安装插件可以对 IDE 的功能进行扩展。
IDE 快捷键查看
通过 “Help” -> “Keyboard Shortcuts PDF”,可以获得到一个 PDF 形式的快捷键大全。
3.3.2 断点调试
常用代码的调试方法:
- 通过 print 语句,打印变量的值,帮助我们了解代码的执行流程和变量的取值情况,这是最简单的调试方法
- 通过 logging 模块即日志模块,去记录我们关键变量的取值
- 使用调试器,比如 pdb、ipdb
- 使用 IDE PyCharm 的调试功能 (推荐)
下面我们来介绍一下 PyCharm 中,是如何进行代码调试的。
设置断点
在想要暂停程序执行以检查变量值或程序状态的代码行旁边的灰色区域,用鼠标左键点击,此时就会出现一个红点,即表示设置了一个断点。
启动调试
主要有两种启动方式:- 方式一:直接点击右上角的小虫子图标
- 方式二:鼠标右键,选择 “Debug ‘xxx’”
Tips:
不要通过普通 Run 的方式启动程序,需要通过 Debug 方式启动,设置的断点才能生效。
调试工具窗口
当程序执行到断点时,会暂停执行,此时会出现调试工具窗口,主要包括以下几个部分:
调试工具:提供了若干操作按钮。
- Rerun ‘xxx’(command + R):重新以调试的方式运行代码。
- Stop ‘xxx’(command + F2):停止运行当前代码调试。
- Resume Program(option + command + R):继续执行程序一直到结束,如果当前执行处后面还有断点,则执行到下一个断点处。
- Pause Program:如果当前程序正在运行中,点击该按钮,则会立即停止到正在运行的地方。
- Step Over(F8):步过,单步运行,但不会进入函数体中。
- Step Into(F7):步入,单步运行,但会进入到函数体中。
- Step Into My Code(option + shift + F7):步入我的代码,单步运行,也会进入到函数体中,但是只会进入到你自己编写的代码函数中,不会进入到系统的函数。
- Step Out(F8):步出,跳出当前函数体。
- View Breakpoints…(shift + command + F8):查看当前程序的所有断点。
- Mute Breakpoints:禁止当前程序的所有断点,使所有断点失效。
变量窗口:显示当前作用域内的变量及其值,可以展开查看对象的属性。
栈帧窗口:显示当前的调用栈,可以查看程序的执行路径。
控制台:可以在调试过程中输入命令或查看程序的输出。
3.4 PyCharm 快捷键
3.4.1 指令大全
在 Windows 中,下面 command 指令都替换成 ctrl,option 指令都替换成 alt 即可。
Mac 键盘符号和修饰键说明:
- ⌘ command
- ⇧ shift
- ⌥ option
- ⌃ control
- ↩︎ return / enter
- ⌫ delete
另外,Mac 中想触发 Fx,则需要加上 fn 键,例如触发 F3,需要 fn 和 F3 一同按下才能触发 F3 键。
| 功能 | 指令 | 分类 |
|---|---|---|
| 快速打开设置界面 | command + , |
command 类 |
| 查看方法或函数的参数信息 | command + P(光标停在调用函数的括号内使用快捷键) |
|
| 跳转代码定义 | command + 鼠标左键 |
|
| 代码智能补全 | command + J(常用作字典/列表/元组/集合推导式和一些 web 框架的装饰器快速编写) |
|
| 复制 | command + C |
|
| 粘贴 | command + V |
|
| 剪切 | command + X |
|
| 查找 | command + F |
|
| 替换 | command + R |
|
| 复制并换行 | command + D |
|
| 撤销 | command + Z |
|
| 显示最近打开文件的列表 | command + E |
|
| 注释或取消注释 | command + / |
|
| 删除当前行 | command + Backspace(退格键) |
|
| 导入相关包 | option + Enter |
option 类 |
| 调出多行光标 | option + 鼠标左键 |
|
| 调出不同的工具窗口 | option + [1,2,3,4,5,6,7,8,9] |
|
| 退回上一步 | command + option + 左方向键< |
command + option 类 |
| 前进下一步 | command + option + 右方向键> |
|
| 格式化代码 | command + option + L |
|
| 环绕方式 | command + option + T(常用作 try-except 快速编写) |
|
| 返回上一次编辑处 | command + shift + Backspace(退格键) |
command + shift 类 |
| 查看断点 | command + shift + F8 |
|
| 全局查找 | command + shift + F |
|
| 全局替换 | command + shift + R |
|
| 智能代码补全 | command + shift + enter |
|
| 代码上下移动 | command + shift + ↑or↓ |
所有指令:
3.4.2 常用指令
快速查找文件
用快捷command+E可打开最近访问过的文件。
万能搜索
连续按两下
shift键可以搜索文件名、类名、方法名,如果要搜索目录则在开头加斜杠/。
全局搜索、全局替换
如果你要全局项目范围内搜索文件里面的关键字,那么就需要使用
command+shfit+F,或者command+shfit+R全局替换。
智能提示
智能提示是 IDE 的标配功能,PyCharm 默认有自动提示功能,但是还不够智能,比如要使用还没有引入到的模块则没法自动提示了,因此可以使用
option+enter智能提示帮助你选择合适的操作。任意位置换行
无论你的光标处在何位置,你都可以通过快捷键
shfit+enter另起一行,这样无需把光标移到未尾去操作。误删文件,一秒找回
在你的项目目录里,点击右键,有个 Local History 的选项,再点击子选项 Show History,你可以看到这里有个记录板。如果你想恢复删除的文件,就在删除的记录项点击右键,选择 Revert 即可恢复。
另外,也可以在这里面找到之前修改前的历史记录,同样可以选择恢复到之前的状态。
使用书签,快速定位
F3:在鼠标所在代码行,添加 / 取消匿名书签option+F3:在鼠标所在代码行,使用助记符添加 / 取消书签
4. 项目配置文件
4.1 Ini 配置文件
ini 文件是初始化文件(Initialization File)的缩写,是一种简单的文本配置文件格式。
ini 文件通常用于存储程序的配置信息,例如软件的设置选项、参数、路径等。它的结构比较简单,由节(Section)和键值对(Key-Value Pair)组成。Section 用方括号括起来,例如:[SectionName] 。在 Section 下面是键值对,键和值之间用等号连接,例如:Key=Value 。
Python 项目就可以使用 ini 文件或者 config 文件做配置文件,并提供了 configparser.ConfigParser 来读取 ini,ini 配置文件以 .ini 结尾,config 文件以 .config 结尾,两者配置方式相同。
ini 在 Windows 系统中常常作为配置文件,其格式如下所示。
而在 Python 文件中,我们可以通过 configparser 包中的 ConfigParser 函数来调用 ini 文件。
1 | [mysql] |
- cf.scctions(): 会获取 ini 配置文件中所有节名称
- cf.options(‘xxx’): 会获取 xxx 节下的所有配置项
- cf.items(‘xxx’): 会获取 xxx 节下的所有键值对
- cf.get(‘xxx’, ‘yyy’): 会获取 xxx 节下 yyy 配置项的对应的 value 值
1 | from configparser import ConfigParser |
4.2 XML 配置文件
XML 是一种可扩展标记语言,可以标记电子文件使其具有结构性,常用于配置文件、数据存储和传输等领域,例如 Web 服务中的数据交换、文档标记等。
1 |
|
XML 可以用来做 Python 的项目配置文件,可以使用标准模块 xml.etree.ElementTree 来解析 XML 文件。
1 | import xml.etree.ElementTree as ET |
我们也可以通过递归来遍历 XML 文件中的所有节点。
1 | import xml.etree.ElementTree as ET |
4.3 JSON 配置文件
JSON(JavaScript Object Notation)文件是一种轻量级的数据交换格式。它以易于人类阅读和编写的文本形式来存储和交换数据,同时也易于机器解析和生成。
JSON 文件的结构非常简单,主要由键值对组成。键是字符串,值可以是字符串、数字、布尔值(true/false)、对象(又是一组键值对)、数组或者 null 。
JSON 文件常用于前后端的数据传输,因为它具有良好的跨平台性和语言无关性,大多数编程语言都能轻松地解析和生成 JSON 格式的数据。在实际应用中,比如配置文件、Web API 的响应数据等场景,JSON 文件都被广泛使用。
1 | { |
在 Python 文件中解析 json 文件就十分的容易,直接导入 json 包即可。
1 | import json |
4.4 YAML 配置文件
YAML 是专门用来写配置文件的标记语言,比 ini 更加直观更方便。并且支持多种数据类型,比如字符串、整数、浮点数、布尔值、数组和字典等。
YAML 的语法比较简洁直观,不需要像其他一些格式那样使用特定的括号或符号:
- 使用空格缩进表示层级结构
- 用冒号来分隔键值对,key 和 value 之间要用空格分开
- 使用短横线来表示一个列表
- 使用 # 表示注释
YAML 文件常用于配置文件,特别是在一些需要复杂配置的应用中,比如部署配置、持续集成/持续部署(CI/CD)管道配置等。它的易读性和简洁性使得配置信息更容易理解和维护。
1 | # 单个键值对,常用来定义字符串变量 |
来看个实际的应用例子。
1 | mysql: |
YAML 可以用于作为 Python 的项目配置文件,使用第三方模块 YAML 可以读取 YAML 文件。
1 | pip install PyYaml |
在 Python 文件中,使用起来也比较方便,直接导入 yaml 包,然后调用其方法即可。
1 | import yaml |
4.5 Python 配置文件
我们也可以将配置信息放到 Python 文件中 ,以 Python 脚本作为配置文件。虽然这种方式很方便快捷,但并不推荐,因为这等于将配置信息以明文的方式展现到 Python 文件中,如果作为一个项目公布出去,可能会泄露。不过如果只是个人项目开发,则可以使用这种方式提升效率。
例如,下面我在一个 Python 文件中定义字典。
1 | # parse.py |
然后在另一个 Python 文件导入上面这个文件里的信息,并进行使用。
1 | from parse import mysql_config, MysqlConfig |
4.6 动态配置
前面的五种方法都存在一些问题,例如面对不同环境时,配置文件的信息都是固定的;并且若项目开源了,这些信息如果不小心提交上去,则可能造成安全问题。这时候就可以通过环境变量来解决这些问题,可以看如下例子。
Tips:
下面这些环境变量 export 操作方式都是默认在 mac 或 Linux 系统下,如果在 Windows 系统下则需要通过 “ 控制面板 “ - “ 系统和安全 “ - “ 系统 “ - “ 高级系统设置 “ - “ 环境变量 “ 来设置。
- 通过环境变量来区分不同的环境信息
1 | # 设置环境变量 |
- 可以直接将敏感类的配置信息放进环境变量里
1 | # 添加环境变量 |
- 若配置信息很多,一个个操作放进环境变量中很麻烦,则可以使用 python-dotenv 第三方库,支持将敏感或者配置信息写到
.env文件后进行查找操作 - 下载 python-dotenv 库
1 | pip install python-dotenv |
- 创建
.env文件
1 | API_KEY = jladsf jlkajd fsasd |
- 代码示例
1 | import os |
Tips:
如果创建了
.env文件,则为了避免误操作上传到代码仓库造成信息泄露,需要将.env文件加到.gitignore中忽略该文件。

































