python -m中m参数的解释

python -m是将库中的python模块用作脚本去运行

目录结构如下

package/
    __init__.py
    mod1.py
package2/
    __init__.py
    run.py

在package里面有mod1.py文件和package2文件夹里面有run.py文件夹
run.py里面的具体内容如下:

# run.py 内容如下
import sys
from package import mod1
print(sys.path)

在运行python package2/run.py ,直接启动的方式会失败:

Traceback (most recent call last):
 File "package2/run.py", line 2, in <module>
  from package import mod1
ImportError: No module named package

当需要启动的py文件引用了一个模块。你需要注意:在启动的时候需要考虑sys.path中有没有你import的模块的路径!
这个时候,到底是使用直接启动,还是以模块的启动?目的就是把import的那个模块的路径放到sys.path中。

导入一个叫mod1的模块时,解释器现在当前目录搜索名字为mod1.py的文件,如果没有找到的话,就会在sys.path变量中给出的目录列表中查找,sys.path变量中的初始值来自如下:

  • 输入脚本的目录(当前目录)
  • Python默认安装路径中搜索
  • 实际上,解释器由 sys.path 变量指定的路径目录搜索模块,该变量初始化时默认包含了输入脚本(或者当前目录), PYTHONPATH 和安装目录。这样就允许 Python程序了解如何修改或替换模块搜索目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值