有可能解决相对进口的问题吗



我在导入机制方面遇到了一些问题。例如,我有一棵这样的树:

├── my_package  
|   ├── first.py  
|   └── second.py  
└── test.py

second.py:

def second_func():
print('Hello World')

first.py:

from second import second_func
def first_func():
second_func()

test.py:

from my_package.first import first_func
first_func()

当我尝试运行test.py时,我得到了这个错误:

ModuleNotFoundError: No module named 'second'

感觉second.py不是在my_package中搜索的,而是在my_pacakagetest.py所在的目录中搜索的。这是一个奇怪的机制,因为如果我有一个现成的包,我不想在其中创建一些新文件,我想从另一个地方与它交互。

首先在my_package中创建一个__init__.py。将first.py的导入语句更改为以下

from .second import second_func

然后运行python test.py。它应该给Hello World

最新更新