想把自己接口自动化部署到 docker 目前容器创建成功但是在一个导入包时候报错,自己本地没问题 ,目前怀疑是 dockerfile add 这块有点问题 ,一筹莫展,希望社区大佬麻烦看下(ps:报错的地方是用例层引入工具层一个获取 excel 的方法) dockerfile 项目结构: 目前知道在 cmd 运行会报同样错误,百度相关方案未解决
执行前可以试一下添加项目目录到 PYTHONPATH 环境变量里面:
PYTHONPATH
ENV PYTHONPATH "${PYTHONPATH}:/code"
另外执行 Python 时,因为之前设定工作目录在 /code 里面,所以不用再写上 /code。
/code
CMD ["python", "testCase/test_TradeArea.py"]
还是报错(手动捂脸)
先 workdir,再 add,dockerfile 放到项目根目录下,ADD 改成 ADD . . ,CMD 改成 CMD ["python", "testCase/test_TradeArea.py"] 试试
from code.utils.handle_excel import get_excel_data
加上全目录呢?
我记得我很久前也遇到了相关问题,模糊记得是,在引入 excel 文件路径那里的代码,以 docker 的工作目录去相对或者绝对引入。(希望是对的哈,已经过很久了,但是我们问题是一致的。)
我这边试了一下,PYTHONPATH 环境变量设置好之后,在 cmd 执行就没有问题了。
不过测试的时候,我发现一种情况(我这边有一个项目,目录结构很类似,这时候还未添加环境变量):
Z:\code\xxx>python test\sample.py Traceback (most recent call last): File "Z:\code\xxx\test\sample.py", line 1, in <module> from util.yyy import zzz ModuleNotFoundError: No module named 'util'
出现导入错误时,我这边提示的是一级的模块找不到,你这边提示到了第二级,不知道是不是还有什么差别。
统一回复一下各位老哥,感谢各位老哥回帖,最近 gs cy 事情有点多最近才抽时间去看感谢各位老哥回复