什么时候会用到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包,完美解决跨目录导入问题

相关推荐
lupai9 小时前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
荷蒲10 小时前
【小白量化Qbuddy】用AI设计miniQMT指标公式计算量化平台
人工智能·python·机器人
阿童木写作10 小时前
跨境电商图片翻译工具,批量翻译视频字幕一键抠图
人工智能·python·音视频
何以解忧,唯有..12 小时前
Pydantic 介绍与使用:Python 数据校验的现代方案
数据库·python·microsoft
又幸福了哥13 小时前
Python入门到高级(知识点七)
python
又幸福了哥13 小时前
Python入门到高级(知识点六)
python
维克兜率天13 小时前
【维克】动量指标家族:RSI、ROC、CCI、Momentum全面解析
python·算法
XZ-07000114 小时前
week2-1-可视化
开发语言·python
Java后端的Ai之路14 小时前
14、Python - 责任链模式
服务器·开发语言·人工智能·python·责任链模式
张人玉14 小时前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js