如何在同一个项目中使用 Streamlit 和 Pytest
how to use Streamlit and Pytest in the same project
当我尝试在同一项目中使用 Pytest 和 Streamlit 时,模块导入出现问题,我不确定如何处理。
我的目录如下:
repo
├── main.py
├── app.py
├── utils
│ ├── __init__.py
│ ├── util_a.py
└── tests
├── __init__.py
└── test_a.py
app.py
文件包含下一个导入行:
import utils.util_a
...
现在,streamlit 应用程序 运行s 符合预期,包含以下行:
streamlit run repo/app.py
但是当我 运行 py.test
时,我收到一条错误消息:
ModuleNotFoundError: No module named 'utils'
如果我按如下方式替换 app.py
中的导入行:
import repo.utils.util_a
...
令人惊讶的是,Pytest 运行 符合预期,但 Streamlit 应用程序 returns 下一个错误:
ModuleNotFoundError: No module named 'repo'
该错误的根本原因是什么,我该如何处理?如何在同一个项目中使用 Pytest 和 Streamlit 而不会导致导入冲突?
谢谢!
在repo
中添加conftest.py
文件解决了问题。现在,目录如下所示:
repo
├── main.py
├── app.py
├── conftest.py
├── utils
│ ├── __init__.py
│ ├── util_a.py
└── tests
├── __init__.py
└── test_a.py
that post
中有更多详细信息
当我尝试在同一项目中使用 Pytest 和 Streamlit 时,模块导入出现问题,我不确定如何处理。
我的目录如下:
repo
├── main.py
├── app.py
├── utils
│ ├── __init__.py
│ ├── util_a.py
└── tests
├── __init__.py
└── test_a.py
app.py
文件包含下一个导入行:
import utils.util_a
...
现在,streamlit 应用程序 运行s 符合预期,包含以下行:
streamlit run repo/app.py
但是当我 运行 py.test
时,我收到一条错误消息:
ModuleNotFoundError: No module named 'utils'
如果我按如下方式替换 app.py
中的导入行:
import repo.utils.util_a
...
令人惊讶的是,Pytest 运行 符合预期,但 Streamlit 应用程序 returns 下一个错误:
ModuleNotFoundError: No module named 'repo'
该错误的根本原因是什么,我该如何处理?如何在同一个项目中使用 Pytest 和 Streamlit 而不会导致导入冲突?
谢谢!
在repo
中添加conftest.py
文件解决了问题。现在,目录如下所示:
repo
├── main.py
├── app.py
├── conftest.py
├── utils
│ ├── __init__.py
│ ├── util_a.py
└── tests
├── __init__.py
└── test_a.py
that post
中有更多详细信息