Docker docker 执行 python 脚本,提示找不到导入包,怎么破

黑山老妖 · 2018年11月02日 · 最后由 阿东 回复于 2018年11月09日 · 4991 次阅读

写了个 py 脚本,已经通过 docker run python python install requests 装了 request 包
为什么执行时候找不到
有 docker 玩的 6 的大神路过求指点

最佳回复

用 dockerfile 来创建容器试试

共收到 17 条回复 时间 点赞

目前想到的一个方法是,就在服务器本机 pip 的 requests 包,但是我 docker 里的 python 镜像里已经有包了啊,为什么执行的时候没找到呢

进去 docker 容器里看下这个包是否真的存在

肯定存在啊 pip 都成功了

4楼 已删除

麻烦把操作步骤和 dockerfile 贴出来看看
docker run python install xxx 的话会新启动一个容器,并不是在你操作的那个容器里进行的.应该用 docker exec -it 容器 id python install xxxx

regend 回复

你这个容器 id,用哪个镜像起容器呢?

regend 回复

python 的容器起一下,就自动停了

黑山老妖 回复

docker ps -a 看下已经启动了多少个容器。
看你的描述,安装 request 包和导入 request 包的是两个不同的容器

Jerry li 回复

docker ps -a 看出有很多容器,但很多都是停止的。docker ps 只有 4 个,但没有用 python 镜像起来的容器

用 dockerfile 来创建容器试试

黑山老妖 回复

看下 docker run 的参数说明吧

Zhhh 回复

赞!按你的思路,我 dockerfile 新写了个包含 request 的 python 镜像,可以执行脚本了

Zhhh 回复

又遇到个问题,我这个脚本里有日志输出,代码里也指定了日志输出位置,但是执行脚本后,日志确输出到容器里的某个路径下了,该怎么破😂

Jerry li 回复

多谢,已解决了

黑山老妖 回复

端口映射 22 ,ssh 进去拿文件试试

日志可以使用 -v 挂载出来

Zhhh 回复

补充一下,dockerfile 是基于基础镜像文件生成新的镜像文件。镜像文件运行起来之后叫容器,dockerfile 并不直接生成容器。

一个 docker+selenium+python 的 demo,希望对你有帮助
https://testerhome.com/topics/16605

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