繁体   English   中英

ModuleNotFoundError:在命令行中运行 .py 脚本时没有名为“####”的模块

[英]ModuleNotFoundError: No module named '####' when running .py script in command line

这是简化的演示。

project-dir
    |__dir1
         |__dir2
              |__mod1
              |    |__func1.py
              |    |__func2.py
              |__a.py
              |__b.py
# /dir1/dir2/mod1/func1.py
def bar():
    print('this is func `bar` in `func1`')
# /dir1/dir2/mod1/func2.py
def foo():
    print('this is func `foo` in `func2`')
# /dir1/dir2/b.py
def spam():
    print('this is func `spam` in `b`')
# /dir1/dir2/a.py
from dir1.dir2.b import spam
from dir1.dir2.mod1.func1 import bar
from dir1.dir2.mod1.func2 import foo

if __name__ == '__main__':
    print('this is `a`)
    spam()
    bar()
    foo()

当我在命令行中将这个脚本a.py作为D:\\project-dir>python dir1/dir2/a.py ,会出现错误ModuleNotFoundError: No module named 'dir1' 但是当直接在 IDE 中运行这个脚本a.py时它会起作用。 如何在命令行中正确运行此脚本?

您应该在a.py执行此a.py

# /dir1/dir2/a.py
from b import spam
from mod1.func1 import bar
from mod1.func2 import foo

if __name__ == '__main__':
    print('this is `a`)
    spam()
    bar()
    foo()

Python 允许您导入本地目录中的内容。

编辑:

你说你遇到了错误。 您可能需要包含一个虚拟的__init__.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM