ImportErroR语言 测试在 CircleCI 上失败,但在本地通过



正如标题所说 - 我的文件夹结构是这样的:

venv/  
__init__.py  
.circleci/  
config.yml  
Dockerfile   
docker-compose.yml  
config.py  
requirements.txt  
src/  
__init__.py  
other_scripts.py  
tests/  
__init__.py  
test_a.py  
test_b.py  

测试文件有一个from config import *行。在本地运行根目录或通过 bash shell 运行$ pytest到容器(在 virtualenv 内部)按预期工作,但在 CircleCI 上,构建失败,并ImportError: No module named 'config'上述代码行。我正在使用python3.5和circleCI 2.0。

提前感谢!

如注释中建议的:从根目录中删除__init__.py,添加一个名为conftest.py的空文件。

有关conftest.py技巧的解释,请查看我对类似问题的其他答案,例如pytest找不到模块或将pytest与src层一起使用。简而言之,添加conftest.py会将项目目录添加到sys.path,因此config模块变得可导入。

至于删除__init__.py文件,它与错误无关,它只是不属于那里。当然,您不想将项目目录设置为包,因此尽早删除不需要的 init 模块将避免将来出现一些意外错误。

最新更新