docker-compose启动错误无法导入名称_thread

时间:2016-10-27 12:30:47

标签: python docker docker-compose six

对于那些试图开始使用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无法修复它!

3 个答案:

答案 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

source

答案 2 :(得分:0)

这解决了我的问题

pip install --upgrade docker-py