【问题标题】:Is there any way to fix azure cli import pyparsing error on mac?有什么方法可以修复 mac 上的 azure cli import pyparsing 错误?
【发布时间】:2021-07-05 09:02:19
【问题描述】:

我在重新安装后尝试运行 azure CLI:

$ az
Traceback (most recent call last):
  File "/usr/local/Cellar/python@3.8/3.8.11/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 185, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/local/Cellar/python@3.8/3.8.11/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 111, in _get_module_details
    __import__(pkg_name)
  File "/usr/local/Cellar/azure-cli/2.25.0/libexec/lib/python3.8/site-packages/azure/__init__.py", line 1, in <module>
    __import__('pkg_resources').declare_namespace(__name__)
  File "/usr/local/Cellar/azure-cli/2.25.0/libexec/lib/python3.8/site-packages/pkg_resources/__init__.py", line 78, in <module>
    __import__('pkg_resources.extern.packaging.requirements')
  File "/usr/local/Cellar/azure-cli/2.25.0/libexec/lib/python3.8/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 9, in <module>
    from pkg_resources.extern.pyparsing import stringStart, stringEnd, originalTextFor, ParseException
  File "/usr/local/Cellar/azure-cli/2.25.0/libexec/lib/python3.8/site-packages/pkg_resources/extern/__init__.py", line 52, in create_module
    return self.load_module(spec.name)
  File "/usr/local/Cellar/azure-cli/2.25.0/libexec/lib/python3.8/site-packages/pkg_resources/extern/__init__.py", line 44, in load_module
    raise ImportError(
ImportError: The 'pyparsing' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution.

我检查了python二进制路径,发现我已经有了这个包。

【问题讨论】:

  • 试试pip install pyparsing?
  • 二进制中的包已经满足

标签: python macos azure azure-cli


【解决方案1】:

发现问题。 pyparsing 包中调用的子包之一被调用到同名的本地文件夹脚本。结果导入失败。

$ /usr/local/Cellar/azure-cli/2.25.0/libexec/bin/python
Python 3.8.11 (default, Jun 29 2021, 03:08:07)
[Clang 12.0.5 (clang-1205.0.22.9)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyparsing
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/azure-cli/2.25.0/libexec/lib/python3.8/site-packages/pyparsing.py", line 104, in <module>
    import copy
  File "/Users/shprayev/copy.py", line 4, in <module>
    from pymongo import MongoClient
ModuleNotFoundError: No module named 'pymongo'

所以 pyparsing 导入副本,我的路径中有 copy.py。 重命名脚本后它起作用了

【讨论】:

  • 您不是第一个遇到这种情况的人,也不会是最后一个。如果您不小心选择了与 stdlib 中的某个库或某个嵌入式库中的某个库相同的名称,则很容易与 Python 导入发生冲突。令人惊讶的是,这种情况并不经常发生。很高兴你能解决这个问题。
猜你喜欢
  • 2020-03-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
  • 2010-11-04
  • 2019-09-25
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
相关资源
最近更新 更多