是否可以解决相对进口的问题?

时间:2020-07-15 06:19:33

标签: python-3.x relative-import

我的进口机械师有一些问题。例如,我有一棵这样的树:

├── 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所在的目录中搜索。这是一种奇怪的机制,因为如果我有一个现成的软件包,那么我不想在其中创建一些新文件,而是想从另一个地方与之交互。

1 个答案:

答案 0 :(得分:1)

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

from .second import second_func

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