内容简介: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'问题处理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- HSQLDB 死锁问题处理
- Vue常见问题及处理
- 机器学习之类别不平衡问题:从数据集角度处理不平衡问题(二)
- Nginx处理静态文件请求的配置问题
- Elasticsearch Client Bulk 死锁问题处理
- WPF中窗体最大化问题处理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Node即学即用
[英] Tom Hughes-Croucher、[英] Mike Wilson / 郑达韡 / 人民邮电出版社 / 2013-2 / 39.00元
《Node即学即用》由休斯-克劳奇、威尔逊编著,《Node即学即用》讲解如何用Node构建可扩展因特网应用,是全面的实用指南,除了详细介绍Node提供的API外,还用大量篇幅介绍了服务器事件驱动开发的重要概念。内容涉及跨服务器的并发连接、非阻塞I/O和事件驱动的编程、如何支持各种数据库和数据存储工具、NodeAPI的使用示例等。适合对JavaScript及编程有一定程度了解的读者阅读。一起来看看 《Node即学即用》 这本书的介绍吧!