在我的应用程序调用同一目录中的另一个脚本的情况下,运行pytest时遇到问题。这是我的目录结构:
├── my_project/
│ ├── application/
│ | ├──__init__.py
│ | ├──app.py
│ | ├──utils.py
│ ├── application_test/
│ | ├── __init__.py
│ │ ├── unit_test.py
app.py
中的代码具有以下语句:from utils import func1, func2, func3
,当我运行$ python app.py
时,此代码可以正常工作。但是,当我从$ py.test
目录级别运行my_project
时,出现错误“ ModuleNotFoundError:没有名为'utils'的模块”。错误来自unit_test.py
中的这一行:
import application.app
因为该行触发app.py
,该行然后尝试从utils.py
进行导入,所以即使app.py
文件位于同一目录中,也无法看到utils.py
。 / p>
我尝试使用$ python -m pytest application_test
,并且在根中使用__init__.py
,但没有使用,但是关于stackoverflow的所有这些或其他答案似乎都不起作用。
答案 0 :(得分:0)
似乎import语句是相对于您当前所在目录的。在同一目录中调用另一个脚本的解决方案是使用相对导入。在这种情况下,from .utils import func1, func2, func3
起作用了!