我有以下Python3项目结构:
在我的测试中(pytest),我这样导入:
```python from src.service1.codebase.waiter import check_status ```
为了从service1模块中导入特定的函数。
在service1中的waiter.py中,我这样从logger.py中导入一个函数:
```python from logger import configure_logger ```
然而,当运行测试时,我会得到以下错误提示:
当测试运行时出现这种情况,感觉像
tests/
- testsuite_service1/
- test_main.py
- testsuite_service2/
- test_main.py
src/
- service1/
- codebase/
- __init__.py
- main.py
- logger.py
- waiter.py
- service2/
- codebase/
- __init__.py
- main.py
- logger.py
- waiter.py
在我的测试中(pytest),我这样导入:
```python from src.service1.codebase.waiter import check_status ```
为了从service1模块中导入特定的函数。
在service1中的waiter.py中,我这样从logger.py中导入一个函数:
```python from logger import configure_logger ```
然而,当运行测试时,我会得到以下错误提示:
Traceback:
tests/test_main/test_main.py:3: in <module>
from src.service1.codebase.waiter import check_status
src/codebase/waiter.py:8: in <module>
from logger import configure_logger
E ModuleNotFoundError: No module named 'logger'.
当测试运行时出现这种情况,感觉像
waiter.py
没有在本地目录中查找logger.py
,而可能是在其他位置?将其更改为from .logger import configure_logger
可以解决问题,但会导致我计划部署此代码的运行时发生错误Unable to import module 'main': attempted relative import with no known parent package
,因此需要单独的service1的zip包而不是父目录。是否有可能不使用相对导入并使我的测试了解如何找到所需的文件?
from src.service1.codebase.logger import configure_logger
吗? - b-fg__init__.py
文件? - b-fg