官网:
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 会按照以下顺序搜索:
当前目录(脚本所在的目录)。
PYTHONPATH 中指定的目录。
标准库 和 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
|