ModuleNotFoundError:尝试运行我的代码时没有名为“x”的模块

问题描述 投票:0回答:1

真的束手无策,尝试了多种解决方案,包括使用

setup.py
文件、将相对导入更改为绝对导入(反之亦然)、包重组、确保每个包都是 __init__.py 文件等等。任何帮助,将不胜感激。我在下面简化了我的项目。

我的项目结构如下:

myProject
   |
   |__ src
        |
        |__ foo
        |     - __init__.py
        |    |
        |    |__ bar
        |          - __init__.py
        |         |
        |         |__ baz
        |              - __init__.py
        |              - baz_functions.py
        |              - baz_watch.py
        |
        | - __init__.py
        | - project_code.py
        | - main.py

至于文件:

main.py

import project_code

if __name__ == '__main__':
    project_code.run()

project_code.py

import foo.bar.baz.baz_functions

def run():
    print('Hello World!')

baz_watch.py

from baz_functions import function_1, function_2

print('Watching...')

baz_functions.py

def function_1():
   print('I am function 1')

def function_2():
   print('I am function 2')

当然,如果没有

import foo.bar.baz.baz_functions
中的:
project_code.py
,代码运行得很好。

我得到的错误是:

Traceback (most recent call last):
  File "C:\xxx\xxx\xxx\myProject\src\main.py", line 1, in <module>
    import project_code
  File "C:\xxx\xxx\xxx\myProject\src\project_code.py", line 1, in <module>
    import foo.bar.baz.baz_functions
  File "C:\xxx\xxx\xxx\myProject\src\foo\bar\baz\baz_watch.py", line 1, in <module>
    from baz_functions import function_1, function_2
ModuleNotFoundError: No module named 'baz_functions'
python python-3.x debugging runtime-error python-import
1个回答
0
投票

baz_functions
不是顶级模块;它位于包
foo.bar.baz
中,并且使用 absolute 导入,必须这样导入。

relative导入可以使用

.
来引用与导入模块位于同一包中的模块:

from .baz_functions import function1, function2
© www.soinside.com 2019 - 2024. All rights reserved.