python docker抛出错误:AttributeError:module';六个';没有属性';PY34';

python docker抛出错误:AttributeError:module';六个';没有属性';PY34';,python,docker,six,Python,Docker,Six,我正在编写一个脚本,它将构建docker图像,然后将图像推送到ECR。 我当前的python版本是 >python --version Python 3.8.0 因此,出于某种原因,在本地运行python的第一行,我得到了以下错误。这就是说,它还没有建立起推进ECR的形象 导入docker-->抛出以下错误 Traceback (most recent call last): File "genericECR.py", line 1, in <module> im

我正在编写一个脚本,它将构建docker图像,然后将图像推送到ECR。 我当前的python版本是

>python --version
Python 3.8.0
因此,出于某种原因,在本地运行python的第一行,我得到了以下错误。这就是说,它还没有建立起推进ECR的形象

导入docker
-->抛出以下错误

Traceback (most recent call last):
  File "genericECR.py", line 1, in <module>
    import docker
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\docker\__init__.py", line 2, in <module>
    from .api import APIClient
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\docker\api\__init__.py", line 2, in <module>
    from .client import APIClient
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\docker\api\client.py", line 8, in <module>
    import websocket
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\websocket\__init__.py", line 23, in <module>
    from ._app import WebSocketApp
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\websocket\_app.py", line 36, in <module>
    from ._core import WebSocket, getdefaulttimeout
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\websocket\_core.py", line 34, in <module>
    from ._handshake import *
  File "C:\Users\AppData\Local\Programs\Python\Python38-32\lib\site-packages\websocket\_handshake.py", line 40, in <module>
    if six.PY34:
AttributeError: module 'six' has no attribute 'PY34'

它似乎是针对Python34的,所以对于Python38,我如何解决这个问题

最有可能的是
six
版本不够高,c.f

首先检查六个版本:

import six
print(six.__version__)
如果six版本不>=1.0.0,则在命令行上升级six

python -m pip install -U six
使用最新的
pip
,您应该会看到:

>>> import six
>>> six.__version__
'1.13.0'
>>> six.PY34
True

它有帮助,我在docker compose运行时遇到问题,该命令有帮助:
python-m pip install-U six

容器中有什么版本的python?3.8。但我的问题是,如果我尝试在本地运行python脚本,它会抛出一个错误,即six没有属性PY34。它还有另一个python包依赖项。因此,当我升级六个时,我收到了错误:pystreams 0.6要求六==1.6.1,但您将有六个1.13.0,这是不兼容的。但无论如何,升级后,它是工作的。再次感谢。哎哟
streams
看起来非常过时,3-6年没有新的提交。如果没有必要,您不应该依赖它=)欢迎使用堆栈溢出。与其发感谢帖,不如投票选出真正帮助你的答案。(这样其他用户也可以一目了然地看到,尝试哪种解决方案)
>>> import six
>>> six.__version__
'1.13.0'
>>> six.PY34
True