python 的启动方式(加载py文件方式)有两种:
python xxx.py -----直接运行的方式启动
python -m xxx.py ------以模块的方式启动(脚本name的值依然是“__main__”)
不同之处:
直接运行后添加到path中的路径为”脚本所在路径“,
以模块方式运行后多了一个‘ ’,这个‘ ’符号代表python执行运行环境的当前路径(即为python的执行路径)
在sys.path中存在' '当前路径的情况下是能够找到对应包的,而另一种方式找不到包,原因在于python 的模块搜索路径机制:
在一个模块被导入时,PVM会在后台从一系列路径中搜索该模块,其搜索过程如下:
1、在当前目录下搜索该模块;
2、在环境变量PYTHONPATH中指定的路径列表中依次搜索;
3、在python安装路径中搜索
事实上,PVM通过变量sys.path中包含的路径来搜索,这个变量里面包含的路径列表就是上面提到的这些路径信息。
直接启动是把run.py文件,所在的目录放到了sys.path属性中。
模块启动是把你输入命令的目录(也就是当前路径),放到了sys.path属性中。