背景
现有目录
├── main.py
├── pkg
│ ├── arithmetic.py
│ └── power.py
调用关系是: main 调用 power 调用 arithmetic
想既可以调试 main.py 代码,有可以调试 power.py 里的代码,当执行
python pkg/power.py
10的二次方是100
python main.py
报错 ModuleNotFoundError: No module named 'arithmetic'
解决办法
(1) 调整 power 文件
调整为包内引用
from . import arithmetic as ar
# import pkg.arithmetic as ar
#import arithmetic as ar #不能同时满足
(2) 调整调用方式
python -m mod
表示 run library module as a script (terminates option list),也就是 将库模块作为脚本运行,
python -m pkg.power
10的二次方是100
python main.py
2 的平方是4
#建议
python -m main
2 的平方是4
[!TIP]
以后自己还是用 python -m xxx(无py) 执行代码吧
文件内容
arithmetic 文件
def multiply(a,b):
return a*b
power 文件
# from . import arithmetic as ar
# import pkg.arithmetic as ar
import arithmetic as ar #不能同时满足
def pow2(a):
return ar.multiply(a,a)
if __name__ == '__main__':
print('10的二次方是'+str(pow2(10)))
main 文件
from pkg.power import pow2
print(f"2 的平方是{pow2(2)}")