Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot import name 'Iterable' from 'collections' #20444

Closed
XBeg9 opened this issue Nov 19, 2021 · 15 comments
Closed

cannot import name 'Iterable' from 'collections' #20444

XBeg9 opened this issue Nov 19, 2021 · 15 comments
Labels
AKS az aks/acs/openshift customer-reported Issues that are reported by GitHub users external to the Azure organization. Service Attention This issue is responsible by Azure service team.

Comments

@XBeg9
Copy link

XBeg9 commented Nov 19, 2021

Describe the bug

Command Name
az aks get-credentials

Errors:

The command failed with an unexpected error. Here is the traceback:
cannot import name 'Iterable' from 'collections' (/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)
Traceback (most recent call last):
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/knack/cli.py", line 231, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 556, in execute
    self.commands_loader.load_arguments(command)
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/__init__.py", line 517, in load_arguments
    self.command_table[command].load_arguments()  # this loads the arguments via reflection
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 313, in load_arguments
    super(AzCliCommand, self).load_arguments()
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/knack/commands.py", line 104, in load_arguments
    cmd_args = self.arguments_loader()
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 125, in arguments_loader
    op = self.get_op_handler(self.op_path)
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 59, in get_op_handler
    handler = import_module(mod_to_import)
  File "/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/fed/.azure/cliextensions/aks-preview/azext_aks_preview/custom.py", line 41, in <module>
    from tabulate import tabulate  # pylint: disable=import-error
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/tabulate.py", line 16, in <module>
    from collections import Iterable
ImportError: cannot import name 'Iterable' from 'collections' (/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)

To Reproduce:

  • az aks get-credentials --resource-group {} --name {} --subscription {} --admin

Expected Behavior

Environment Summary

macOS-11.6-x86_64-i386-64bit, Darwin 20.6.0
Python 3.10.0
Installer: HOMEBREW

azure-cli 2.30.0

Extensions:
front-door 1.0.9
aks-preview 0.4.65

Additional Context

@ghost ghost added needs-triage This is a new issue that needs to be triaged to the appropriate team. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that customer-reported Issues that are reported by GitHub users external to the Azure organization. labels Nov 19, 2021
@yonzhan yonzhan added the AKS az aks/acs/openshift label Nov 19, 2021
@ghost ghost removed the needs-triage This is a new issue that needs to be triaged to the appropriate team. label Nov 19, 2021
@yonzhan yonzhan added Service Attention This issue is responsible by Azure service team. and removed question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Nov 19, 2021
@ghost
Copy link

ghost commented Nov 19, 2021

Thanks for the feedback! We are routing this to the appropriate team for follow-up. cc @Azure/aks-pm.

Issue Details

Describe the bug

Command Name
az aks get-credentials

Errors:

The command failed with an unexpected error. Here is the traceback:
cannot import name 'Iterable' from 'collections' (/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)
Traceback (most recent call last):
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/knack/cli.py", line 231, in invoke
    cmd_result = self.invocation.execute(args)
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 556, in execute
    self.commands_loader.load_arguments(command)
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/__init__.py", line 517, in load_arguments
    self.command_table[command].load_arguments()  # this loads the arguments via reflection
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 313, in load_arguments
    super(AzCliCommand, self).load_arguments()
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/knack/commands.py", line 104, in load_arguments
    cmd_args = self.arguments_loader()
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 125, in arguments_loader
    op = self.get_op_handler(self.op_path)
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 59, in get_op_handler
    handler = import_module(mod_to_import)
  File "/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/fed/.azure/cliextensions/aks-preview/azext_aks_preview/custom.py", line 41, in <module>
    from tabulate import tabulate  # pylint: disable=import-error
  File "/usr/local/Cellar/azure-cli/2.30.0_1/libexec/lib/python3.10/site-packages/tabulate.py", line 16, in <module>
    from collections import Iterable
ImportError: cannot import name 'Iterable' from 'collections' (/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)

To Reproduce:

  • az aks get-credentials --resource-group {} --name {} --subscription {} --admin

Expected Behavior

Environment Summary

macOS-11.6-x86_64-i386-64bit, Darwin 20.6.0
Python 3.10.0
Installer: HOMEBREW

azure-cli 2.30.0

Extensions:
front-door 1.0.9
aks-preview 0.4.65

Additional Context

Author: XBeg9
Assignees: -
Labels:

Service Attention, AKS, customer-reported

Milestone: -

@yonzhan
Copy link
Collaborator

yonzhan commented Nov 19, 2021

route to service team

@Christophosaurus
Copy link

Christophosaurus commented Nov 22, 2021

I am experiencing the same issue.

This happens across some other commands too (along with az aks get-credentials). It happens in az interactive as well.

I am also unable to use --output table when querying command results. I am not sure if this is related or not, have filed a separate issue for that #20469

Environment Summary

macOS-12.0.1-x86_64-i386-64bit, Darwin 21.1.0
Python 3.10.0
Installer: HOMEBREW

azure-cli 2.30.0

Extensions:
aks-preview 0.5.42
interactive 0.4.5

@miwithro
Copy link

@XBeg9 @Christophosaurus can you try to reinstall/repair az cli?

@Christophosaurus
Copy link

Thanks @miwithro, I have tried this already.

I have tried just simply uninstalling and re-installing as well as uninstalling, running brew cleanup -s and even removing the brew cache directory rm -rf $(brew --cache) before re-installing again still yields the same results

@Christophosaurus
Copy link

@XBeg9 Try rm -rf ~/.azure and running az login again. After doing this, I was able to run az get-credentials --resource-group {} --name {} --context {} successfully to connect via kubectl.

Annoyingly I can't remember the other commands that I was seeing errors with to try them out to see if it resolves the issue. But there is a possibility it fixes the issue as now when I run az aks get-credentials I get the expected the following arguments are required .... as opposed to the above mentioned stacktrace.

@FumingZhang
Copy link
Member

FumingZhang commented Nov 23, 2021

Sorry for the inconvenience. From the error message, the error is caused by the incompatibility between python3.10 and the current version of the installed site-package tabulate. You can check the installed version of tabulate by command pip show tabulate.

To mitigate this problem, please choose one of the options below
Option 1:
Update tabulate by pip install tabulate==0.8.9 -U.

Option 2:
Use python3.8 instead.

Please consider the following workaround, otherwise, please use cloudshell from portal or wait for the next release to fix this issue.

@rudolphjacksonm
Copy link

I just tried running pip install tabulate==0.8.9 -U but am still getting the same error:

ImportError: cannot import name 'Iterable' from 'collections' (/usr/local/Cellar/python@3.10/3.10.0_2/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/__init__.py)

@FumingZhang Any other things you'd recommend?

@jamesongithub
Copy link

my tabulate is at 0.8.9, still unable to get table output back.

@jiasli
Copy link
Member

jiasli commented Nov 24, 2021

Duplicate of #20348

@jiasli jiasli marked this as a duplicate of #20348 Nov 24, 2021
@jiasli jiasli closed this as completed Nov 24, 2021
@Andy-Pham-72
Copy link

Thanks @miwithro, I have tried this already.

I have tried just simply uninstalling and re-installing as well as uninstalling, running brew cleanup -s and even removing the brew cache directory rm -rf $(brew --cache) before re-installing again still yields the same results

Thank you so much for your solution! I was able to run the command!

@PratyushBasu
Copy link

PratyushBasu commented Jan 11, 2022

The issue is with the Python version (>3.9)... Python realigned the modules.

  1. either use Python v3.9 or prior ones
    OR
  2. The base package needs to be modified (from where this import error is generating)
try:
    # Python <= 3.9
    from collections import Iterable
except ImportError:
    # Python > 3.9
    from collections.abc import Iterable

@jiasli
Copy link
Member

jiasli commented Jan 11, 2022

@PratyushBasu, this issue has already been fixed. Please update to the latest Azure CLI.

@manish2645
Copy link

I was excecuting this below command but getting error...

from inltk.inltk import setup
setup('hi')

ImportError: cannot import name 'Iterable' from 'collections' (C:\Users\manis\AppData\Local\Programs\Python\Python310\lib\collections_init_.py)

@PratyushBasu
Copy link

PratyushBasu commented Nov 14, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AKS az aks/acs/openshift customer-reported Issues that are reported by GitHub users external to the Azure organization. Service Attention This issue is responsible by Azure service team.
Projects
None yet
Development

No branches or pull requests