什么时候会用到python -m

python -m是"模块运行模式",无需关心当前工作目录,只要项目根目录在python的sys.path中,即可直接运行后面跟的模块,比直接执行.py文件更灵活,尤其适用于多目录结构的项目

shell 复制代码
my_project/  # 项目根目录
  ├── src/   # 源码目录
  │   ├── __init__.py  # 标记为 Python 包
  │   ├── core/
  │   │   ├── __init__.py
  │   │   └── utils.py
  │   └── scripts/
  │       ├── __init__.py
  │       └── run_task.py  # 业务脚本,依赖 src.core.utils
  └── data/  # 数据目录

例如上面的项目中,若在根目录myproject/下,执行python src/scripts/run_task.py,若run_task.py中导入from src.core.utils import xxx,就会报ModuleNotFoundError: No module named 'src',因为python会将脚本所在目录src/scripts/作为默认根目录,无法识别上层src目录;

但若使用python -m src.scripts.run_task运行,python会将当前执行目录my_project(前提是加入PYTHONPATH中了)作为模块根目录,自动识别src包,完美解决跨目录导入问题

相关推荐
2601_962885721 小时前
A股数据源和 API 怎么选?(2026 全景选型指南 + 决策树)
python
Ticnix1 小时前
别再手动上线了:一条命令带备份、健康检查和自动回滚
后端·python·ci/cd
正经教主1 小时前
【FDE系列】阶段2:Day 32:多表查询 — JOIN 与聚合
人工智能·python·fde
Ticnix1 小时前
迁移脚本能跑通,不代表你回滚得回来
后端·python
我的xiaodoujiao2 小时前
Django 基础知识详细图文教程 10-Django 模板引擎 3
后端·python·测试工具·django
quantdash_cc2 小时前
量化策略为什么需要实时行情数据?从信号产生到交易决策的时间差说起
开发语言·python·数据分析·量化交易·股票数据·quantdash
H Journey2 小时前
pip 和uv 开发和部署python项目
python·pip·uv
外收内放2 小时前
Python与AI应用(json模块)
python·学习
databook2 小时前
泊松分布:从基础到实际应用
python·数据挖掘·数据分析
外收内放2 小时前
Python与AI应用(文件操作)
python·学习