假设我们有一个名为 myproject
的 Python 项目,它的目录结构如下:
plaintextCopy code
myproject/ ├── __init__.py ├── main.py └── utils/ ├── __init__.py └── helper.py
其中,main.py
是项目的主程序,依赖于 helper.py
模块中的函数。helper.py
模块定义了一个名为 greet()
的函数,代码如下:
pythonCopy code
# helper.py def greet(name): print(f"Hello, {name}!")
main.py
模块中调用了 helper.py
模块中的 greet()
函数,代码如下:
pythonCopy code
# main.py from utils.helper import greet if __name__ == "__main__": greet("World")
如果我们想要运行 main.py
,可以使用以下命令:
plaintextCopy code
python main.py
但是这样会报错,因为 Python 解释器无法找到 helper.py
模块。我们可以使用 python -m
命令来解决这个问题。在项目的根目录下,使用以下命令:
plaintextCopy code
python -m myproject.main
这个命令会以模块方式运行 main.py
,并自动添加 utils
目录到 Python 模块搜索路径中,从而能够找到 helper.py
模块并成功运行。输出结果为:
plaintextCopy code
Hello, World!