2

对于所有试图开始使用 docker-compose 的好人。我正在运行 OS X El Capitan (10.11)。

该系统附带 python 2.7。不建议尝试将系统 python 替换为 python 3,因为许多核心系统依赖于 python 2 库。

在命令行中使用 docker 安装了 Mac 的“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 并不能解决它!

4

3 回答 3

2

这解决了我的问题

pip install --upgrade docker-py

.

于 2018-12-25T20:52:15.360 回答
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。这是啊哈!我的时刻。出于某种原因,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 的路上。

于 2016-10-27T12:43:21.803 回答
0
sudo pip install --ignore-installed six

资源

于 2017-02-10T07:14:35.150 回答