什么时候会用到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_967987371 分钟前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
专注仿真2 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法
外收内放2 小时前
Python基础语法练习题(75)
开发语言·python·学习
黑十4 小时前
PyTorch 报 “no CUDA GPUs are available“ 怎么办?3 步排查
服务器·网络·人工智能·pytorch·python
threelab4 小时前
开源图片去水印代码
python
taller_20005 小时前
【012】数据类型入门: Excel 数据到 Python 值的转换
python·excel·pie·py
淡漠的蓝精灵5 小时前
web.py:一个简单到极致的 Python Web 框架
开发语言·前端·python·其他
起个名字费劲死了6 小时前
Halcon学习一:骰子识别
前端·python·学习
eric-sjq7 小时前
小思框架 · 30M 级长上下文新架构对比技术报告
人工智能·python·深度学习·语言模型
reasonsummer8 小时前
【办公类-04-05】20261030整理手机照片(华为手机助手导出照片到日期文件夹+批量添加四级文件夹+手动转移照片更名+更改三级文件夹合并汉字名称)
python·智能手机