我真的束手无策,try 了多种解决方案,包括使用setup.py
文件,将相对导入更改为绝对导入,反之亦然,包重组,确保每个包都是__init__. py文件等等.任何帮助将不胜感激.下面我简化了我的项目.
我的项目 struct 如下:
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')
当然,没有project_code.py
中的:import foo.bar.baz.baz_functions
,代码运行正常.
我得到的错误是:
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'