Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ImportError-CircleCI上的测试失败,但在本地通过_Python_Python 3.x_Pytest_Circleci - Fatal编程技术网

Python ImportError-CircleCI上的测试失败,但在本地通过

Python ImportError-CircleCI上的测试失败,但在本地通过,python,python-3.x,pytest,circleci,Python,Python 3.x,Pytest,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 测试文件有一

正如标题所示-我的文件夹结构如下:

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*
行。从根目录本地运行
$pytest
,或者通过bash shell运行到容器(在virtualenv内部)中,效果与预期一样,但在CircleCI上,生成失败,因为上面的代码行没有名为“config”的模块。我正在使用python3.5和circleCI 2.0


提前谢谢

如注释中所建议的:从根目录中删除
\uuuu init\uuuuuuuuuuuupy
,添加一个名为
conftest.py
的空文件

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


至于删除
\uuuu init\uuuu.py
文件,它与错误无关,只是不属于那里。当然,您不希望将项目目录添加到包中,因此尽早删除不需要的init模块将在将来为您避免一些意外错误。

从根目录中删除
\uuuu init\uuuuuuu.py
,添加一个名为
conftest.py
@hoefling的空文件,谢谢!如果您可以添加您的评论和解释作为答案,那就太好了,我会将其标记为已接受。这仅对pytest或unittest模块有效吗?我还发现,
导入测试模块失败