Docker python 接口自动化部署 docker 容器运行失败 No module named xxx

xxxaaazcc · 2022年11月01日 · 最后由 xxxaaazcc 回复于 2022年11月07日 · 7160 次阅读

想把自己接口自动化部署到 docker 目前容器创建成功但是在一个导入包时候报错,自己本地没问题 ,目前怀疑是 dockerfile add 这块有点问题😭 ,一筹莫展,希望社区大佬麻烦看下(ps:报错的地方是用例层引入工具层一个获取 excel 的方法)
dockerfile
项目结构:

目前知道在 cmd 运行会报同样错误,百度相关方案未解决

共收到 7 条回复 时间 点赞
1楼 已删除

执行前可以试一下添加项目目录到 PYTHONPATH 环境变量里面:

ENV PYTHONPATH "${PYTHONPATH}:/code"

另外执行 Python 时,因为之前设定工作目录在 /code 里面,所以不用再写上 /code

CMD ["python", "testCase/test_TradeArea.py"]
DingJunyao 回复

还是报错(手动捂脸)

先 workdir,再 add,dockerfile 放到项目根目录下,ADD 改成 ADD . . ,CMD 改成 CMD ["python", "testCase/test_TradeArea.py"] 试试

from code.utils.handle_excel import get_excel_data

加上全目录呢?

我记得我很久前也遇到了相关问题,模糊记得是,在引入 excel 文件路径那里的代码,以 docker 的工作目录去相对或者绝对引入。(希望是对的哈,已经过很久了,但是我们问题是一致的。)

7楼 已删除
xxxaaazcc 回复

我这边试了一下,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 事情有点多最近才抽时间去看感谢各位老哥回复

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册