Python教程

官网:

https://docs.python.org/zh-cn/3/

https://pypi.org/ 官方软件源

PyPI 源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 列出所有配置项
pip config list
# 查看指定配置项。如果返回空值或报错,说明你当前使用的是官方默认源。
pip config get global.index-url
# 配置 PyPI 源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

# 查看 pip 选项参数及其默认值
pip install --help
# 使用 -i(或 --index-url)参数临时指定一个镜像源进行安装。
pip install requests -i <URL>

# 升级
pip install --upgrade requests

# 清理缓存
pip cache purge

Python 虚拟环境

./.venv/bin/activate 是一个激活 Python 虚拟环境(venv)的脚本,它通过修改当前 Shell 的 PATH 变量,使之优先使用虚拟环境中的 Python 解释器和安装的库,让你能隔离项目依赖,

通常在 Linux/macOS 环境下运行 source ./.venv/bin/activate 即可启用,提示符会显示环境名称。

使用 deactivate 命令即可退出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
####################################### 创建虚拟环境
# 在项目文件夹运行命令。".venv" 是环境的名称,你可以自定义,但通常习惯用这个名字
# --system-site-packages 把系统全局环境的 site-packages 目录添加到搜索路径。但会遵循“本地优先”原则,即优先使用虚拟环境中的版本。
python3 -m venv --system-site-packages .venv


####################################### 激活虚拟环境
source .venv/bin/activate


####################################### 在虚拟环境中安装包
# 激活后,你安装的所有库都会留在该虚拟环境中,不会影响全局系统。
pip install requests


####################################### 查看包的安装位置
# 查看特定包的信息(推荐)
pip show requests
# 列出所有包及其路径
pip list -v


####################################### 退出(停用)虚拟环境
deactivate

PYTHONPATH 环境变量

PYTHONPATH 环境变量的作用:告诉 Python 解释器在执行 import 语句时去哪里寻找模块(Module)和包(Package)。

当运行 import my_module 时,Python 会按照以下顺序搜索:

  1. 当前目录(脚本所在的目录)。

  2. PYTHONPATH 中指定的目录。

  3. 标准库 和 site-packages(安装第三方库的地方)。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

# 加载其他env
source /etc/profile

# 设置项目根路径
PROJECT_ROOT="/data/local/workspaces/mars-python"

# 添加 PYTHONPATH 环境变量
export PYTHONPATH="$PROJECT_ROOT:$PYTHONPATH"

# 使用虚拟环境执行 python 脚本
$PROJECT_ROOT/.venv/bin/python3 $PROJECT_ROOT/start.py

requirements.txt

安装依赖包的方式

  • 通过 PyCharm 的项目解释器设置安装
  • 通过命令安装 (兼容当前环境的最高版本):pip install redis

requirements.txt 用于记录项目所有依赖包及其精确版本,目的是实现项目的依赖管理、环境一致性(可复现性)和方便共享部署。

1
2
3
4
5
6
# 导出当前环境依赖清单
pip freeze >> requirements.txt
# 根据清单安装项目依赖
pip install --prefer-binary -r requirements.txt
# 带--prefer-binary:强烈要求 pip 尽量使用预编译的二进制包 (.whl 文件),如果仓库中有兼容的二进制包,则优先使用它来替代源码包编译。只有在 PyPI 上没有找到与当前 Python 版本、操作系统和 CPU 架构完全兼容的任何二进制包时,pip 才会选择源码包编译 (需要系统安装对应的编译工具链) 。
# 不带--prefer-binary:遵循 pip 默认的安装策略,通常会首选预编译的二进制包 (.whl 文件),但在复杂的依赖解析或版本冲突时,可能会更倾向于使用源码包编译。

基本格式

版本约束符号 含义 说明
== 精确匹配
>= 大于或等于
~= 兼容版本(推荐) test_pandas~=2,则允许安装 2.x.x 的任何版本,但不会升级到 3.0.0 或更高。
< 小于

~= 详细说明:

定义方式 锁定部分 变动部分 结果范围
pandas~=2.3.3 2.3 .3(允许 2.3.x) 2.3.3 ≤ version < 2.4.0
pandas~=2.3 2 .3(允许 2.x) 2.3 ≤ version < 3.0
pandas~=2 2(允许 x) 2 ≤ version < 3

requirements.txt 内容示例

1
2
3
4
pandas~=2.3.3
PyMySQL~=1.1.2
sqlalchemy~=2.0.44
requests~=2.32.5