在Docker容器中运行Python脚本时没有json模块
我正在尝试在一个Docker容器中运行一个简单的Python脚本,这个脚本需要一个JSON字符串作为参数。但是我遇到了以下错误:
Traceback (most recent call last):
File "/root/simple.py", line 2, in <module>
import json
ImportError: No module named json
我使用的是标准的ubuntu:12.04镜像。以下是我启动容器的方式:
docker run -v $(pwd)/:/root/ ubuntu:12.04 python /root/simple.py '[{"hi":"bye"}]'
我的 simple.py
脚本非常简单:
import sys
import json
configs = json.loads(sys.argv[1])
print configs
def read_option_keys(json_file):
json_file[0]["new"] = None
print json.dumps(json_file)
read_option_keys(configs)
你知道为什么它没有按预期返回结果吗:
[{u'hi': u'bye'}]
[{"hi": "bye", "new": null}]
2 个回答
0
Docker 是一种容器技术,这意味着你的 Python 脚本对外面的世界一无所知。现在你在运行一个 Ubuntu 的镜像,但这个镜像里没有 Python 的标准模块。你应该使用一个 Python 的镜像,或者在你的 Ubuntu 镜像里添加 Python。
1
我自己解决了这个问题。Ubuntu的镜像非常简单,啥都没有。我下载了dockerfile/python
这个镜像,现在一切正常了。