对于那些试图开始使用docker-compose的好朋友。我正在运行OS X El Capitan(10.11)。
系统附带python 2.7。不建议尝试将系统python替换为python 3,因为许多核心系统依赖于python 2库。
在Mac中安装了“Docker”,在命令行中使用docker安装了“docker-compose”。
前往终端:'docker-compose --version'抛出错误:
admins-MacBook-Pro-63:~ apil.tamang$ docker-compose --version
Traceback (most recent call last):
File "/usr/local/bin/docker-compose", line 9, in <module>
load_entry_point('docker-compose==1.8.1', 'console_scripts', 'docker-compose')()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 357, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2394, in load_entry_point
return ep.load()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2108, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/Library/Python/2.7/site-packages/compose/cli/main.py", line 17, in <module>
from ..bundle import get_image_digests
File "/Library/Python/2.7/site-packages/compose/bundle.py", line 14, in <module>
from .service import format_environment
File "/Library/Python/2.7/site-packages/compose/service.py", line 31, in <module>
from .parallel import parallel_execute
File "/Library/Python/2.7/site-packages/compose/parallel.py", line 10, in <module>
from six.moves import _thread as thread
ImportError: cannot import name _thread
你做什么的?只是安装python3无法修复它!
答案 0 :(得分:0)
错误源于python无法找到“六个”模块的事实。首先我做了:
sudo pip install six -U //updates the six modules in python
这没有任何帮助,所以我在终端上做了以下事情:
python -c 'import six; print(six.__version__)'
对我来说,这打印出以下内容:
/usr/local/bin/python2.7/site-packages/
这是让我知道我的六个模块的位置。现在,如果你看看我在这个问题开头发布的python中的错误堆栈,你会看到所有操作都发生在文件夹中:/Library/Python/2.7/site-packages。这对我来说是 AHAA!的时刻。出于某种原因,docker-compose python文件安装在此文件夹中,而不是安装在我的系统python路径中(即/ usr / local / bin / python)。我不知道为什么!
然后我必须使用以下命令将six.py和six.pyc复制到/ Library:
cp /usr/local/bin/python2.7/site-packages/six.* /Library/Python/2.7/site-packages
在这里做一点点研究,不要放弃!不要盲目输入上面的命令。简而言之,将文件复制到/Library/Python/2.7/site-packages可以完成交易,现在我正在使用docker-compose。
答案 1 :(得分:0)
sudo pip install --ignore-installed six
答案 2 :(得分:0)
这解决了我的问题
pip install --upgrade docker-py
。