Python——Python中-m参数的使用


整体说明

  • 在 Python 中,-m 参数是一个非常有用的工具,它允许你将模块作为脚本运行,并且可以处理复杂的包结构。无论是运行标准库模块、自定义模块,还是与包结合使用,-m 参数都能简化操作。它的基本语法如下:

    1
    python -m module_name
  • 其中,module_name 是你要运行的模块名(不包含 .py 后缀)。Python 会在 sys.path 中查找该模块,并执行它


运行标准库模块

  • -m 参数常用于运行 Python 标准库中的模块。例如:

    1
    python -m http.server
  • 这会启动一个简单的 HTTP 服务器,默认监听在 8000 端口。http.server 是 Python 标准库中的一个模块,-m 参数让 Python 将其作为脚本运行


运行自定义模块

  • 你也可以使用 -m 参数运行自定义模块。假设你有一个项目结构如下:

    1
    2
    3
    4
    my_project/
    my_module/
    __init__.py
    main.py
  • 你可以在 my_project 目录下运行以下命令:

    1
    python -m my_module.main

这会执行 my_module/main.py 文件中的代码


运行包中的模块

  • 如果模块位于包中,-m 参数会自动处理包的导入路径。例如:

    1
    python -m package.subpackage.module
  • 这会执行 package/subpackage/module.py 文件中的代码


__main__.py 结合使用

  • 如果你有一个包,并且希望在运行包时执行特定的代码,可以在包目录下创建一个 __main__.py 文件。例如:

    1
    2
    3
    4
    my_package/
    __init__.py
    __main__.py
    other_module.py
  • __main__.py 中编写你想要执行的代码,然后运行:

    1
    python -m my_package
    • Python
  • 这会执行 my_package/__main__.py 文件中的代码


python -c 结合使用

  • -m 参数也可以与 -c 参数结合使用,直接在命令行中运行模块。例如:

    1
    python -c "import os; print(os.getcwd())" -m http.server
    • 注:python -c "print('hello')"常常用来执行一个Python命令且不需要创建文件