一、-m
以模块方式运行程序
1、用处
用于解决sys.path, 低层模块引用高层模块
2、举例
# 目录结构
project/
package/
module.py
package2/
run.py
run.sh
# run.py
import sys
from package import module
print(sys.path)
- 有m参数的
# run.sh
python -m package2.run
注意:以模块方式运行,所以目录分割符为.而且程序没有.py后缀
模块启动: 将输入命令的目录(即当前路径), 加入sys.path中
正常运行.
- 无m参数的
# run.sh
python package2/run.py
直接启动把run.py文件, 所在的目录放到了sys.path属性中
运行错误
二、-u
python标准输出主要有以下两种:
- sys.stdout
有缓存的 - sys.stderr
无缓存的
而-u的作用就是让stdout和stderr无差别.