Docker下No module named 'pymongo'问题处理

今天在Docker下使用python的官方镜像运行python脚本操作mongodb,将遇见的错误和解决办法记录备忘;

实战环境

本次实战的环境是Ubuntu16,安装的Docker版本是17.03.2-ce;

回放

  • 在当前电脑创建目录/usr/local/work/python,将打算执行的python脚本放入此目录;

  • 执行以下命令,下载python的官方2.7.14版本镜像,运行一个名为p02的容器,并且本地/usr/local/work/python目录与容器的/usr/Downloads目录做了映射;

docker run --name=p02 -idt -v /usr/local/work/python:/usr/Downloads python:2.7.14
  • 执行docker exec -it p02 /bin/bash进入p02容器;

  • 在容器的/usr/Downloads目录下执行python脚本(记得事先给文件增加可执行权限:chmod a+x)

  • 由于脚本中用到了pymongo,控制台提示以下错误:

root@b5762ad73ae1:/usr/Downloads# ./mongo_transform.py 
Traceback (most recent call last):
  File "./mongo_transform.py", line 2, in <module>
    from pymongo import MongoClient
ImportError: No module named pymongo
  • 执行命令pip install pymongo安装pymongo;

  • 安装成功后,再次执行/usr/Downloads目录下的python脚本,发现错误依旧:

root@b5762ad73ae1:/usr/Downloads# pip install pymongo
Collecting pymongo
  Downloading pymongo-3.6.0-cp27-cp27mu-manylinux1_x86_64.whl (381kB)
    100% |████████████████████████████████| 389kB 65kB/s 
Installing collected packages: pymongo
Successfully installed pymongo-3.6.0
root@b5762ad73ae1:/usr/Downloads# ./mongo_transform.py 
Traceback (most recent call last):
  File "./mongo_transform.py", line 2, in <module>
    from pymongo import MongoClient
ImportError: No module named pymongo

修复问题

  • 执行pip show pymongo查看已经安装的pymongo的信息,如下:
root@b5762ad73ae1:/usr/Downloads# pip show pymongo
Name: pymongo
Version: 3.6.0
Summary: Python driver for MongoDB <http://www.mongodb.org>
Home-page: http://github.com/mongodb/mongo-python-driver
Author: Bernie Hackett
Author-email: bernie@mongodb.com
License: Apache License, Version 2.0
Location: /usr/local/lib/python2.7/site-packages
Requires: 

可以看到路径为:/usr/local/lib/python2.7/site-packages

  • 需要修改家目录下的.bashrc文件,将上面的路径加入PYTHONPATH环境变量中;

  • 此时会发现python:2.7.14镜像中并没有vim工具,所以要依次执行apt-get updateapt-get install vim命令将vim工具安装好;

  • 执行命令vi ~/.bashrc打开.bashrc文件,在底部新增一行,内容如下:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
  • 执行命令source ~/.bashrc使环境变量立即生效;

  • 再次执行/usr/Downloads目录下的python脚本,终于成功了!

  • 欢迎关注我的公众号:程序员欣宸

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员欣宸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值