繁体   English   中英

ModuleNotFoundError: 没有名为 XXX 的模块

[英]ModuleNotFoundError: No module named XXX

这是我的工作区目录结构的一部分:

workspace
+-- .vscode
    +-- launch.json
+-- main
    +-- __init__.py
    +-- main.py
+-- utils
    +-- __init__.py
    +-- func.py
    +-- func2.py

在 func.py 中我写道:

import sys
sys.path.append('.')

from func2 import func2

def func1():
    ...
    func2()
    ...
    return ...

在 main.py 中我写道:

import sys
sys.path.append('.')

from utils.func import func1

执行main.py时,vscode报错:

Traceback (most recent call last):
  File "...\workspace\main\main.py", line 4, in <module>
    from utils.func import func1
  File "...\workspace\utils\func1.py", line 4, in <module>
    from func2 import func2
ModuleNotFoundError: No module named 'func2'

我尝试在文件 func.py 中调用 func1 并运行该文件,它运行良好。 为什么不能在main.py中调用呢?

这是对文件的编辑(执行main.py时注意所有路径都相对于它):

函数2.py

import sys
sys.path.append('.')

def func2():
    print('Here is...\n')

函数.py

import sys
sys.path.append('.')

from utils.func2 import func2    # The change is here; use the path relative to main

def func1():
    func2()
    
    return 0

主程序

import sys
sys.path.append('.')

from utils.func import func1

if __name__ == '__main__':
    func1()
    print('Hello World\n')

根据我的说法,您遇到了与目录相关的问题。 尝试将必要的文件放在同一目录中。

暂无
暂无

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

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