是否可以解决相对导入的问题?
Is it possible to fix problems with relative imports?
我在导入机制方面遇到了一些问题。例如我有一棵这样的树:
├── 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_pacakage
和test.py
所在的目录里找的。这是一个奇怪的机制,因为如果我有一个现成的包,我不想在里面创建一些新文件,我想从另一个地方与它交互。
首先在my_package
中创建一个__init__.py
。将 first.py
的导入语句更改为以下
from .second import second_func
然后运行python test.py
。它应该给 Hello World
我在导入机制方面遇到了一些问题。例如我有一棵这样的树:
├── 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_pacakage
和test.py
所在的目录里找的。这是一个奇怪的机制,因为如果我有一个现成的包,我不想在里面创建一些新文件,我想从另一个地方与它交互。
首先在my_package
中创建一个__init__.py
。将 first.py
的导入语句更改为以下
from .second import second_func
然后运行python test.py
。它应该给 Hello World