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

栏目: Python · 发布时间: 8年前

内容简介: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 update和apt-get install vim命令将vim工具安装好;

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

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

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


以上所述就是小编给大家介绍的《Docker下No module named 'pymongo'问题处理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computer Age Statistical Inference

Computer Age Statistical Inference

Bradley Efron、Trevor Hastie / Cambridge University Press / 2016-7-21 / USD 74.99

The twenty-first century has seen a breathtaking expansion of statistical methodology, both in scope and in influence. 'Big data', 'data science', and 'machine learning' have become familiar terms in ......一起来看看 《Computer Age Statistical Inference》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码