【问题标题】:Why am I getting AttributeError while trying to execute "import requests" from my Mac terminal?为什么我在尝试从我的 Mac 终端执行“导入请求”时收到 AttributeError?
【发布时间】:2021-10-09 17:36:51
【问题描述】:

我正在尝试使用我的 Mac 上的 requests 和 Python 3.10 进行网络抓取。但我只是因为尝试导入 requests 而收到此错误:

>>> import requests
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/utils.py", line 30, in <module>
    from .cookies import RequestsCookieJar, cookiejar_from_dict
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/cookies.py", line 159, in <module>
    class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping):
AttributeError: module 'collections' has no attribute 'MutableMapping'

我需要降级我的 python 版本,或者我能做什么?

【问题讨论】:

  • 显示您的代码。
  • @ArkadiuszDrabczyk,如帖子所示,代码字面意思是import requests - 错误来自库代码
  • 请像上面一样再次打开您的 Python 解释器并发布 print(sys,version) 的输出。
  • requests 目前未被 pyreadiness 网站标记为与 3.10 兼容。这并不意味着它肯定不兼容...但是您可能只需要使用 Python 3.9 一段时间。 pyreadiness.org/3.10

标签: python python-3.x python-requests


【解决方案1】:

collections 模块中的抽象基类 (abc's) 在 Python 3.3 中移至 collections.abc;在 Python 3.10 中,别名为 removed

您的帖子没有明确说明您使用的是哪个版本的requests,或者您是否需要新的 Python 3.10 功能,但希望以下选项之一对您有用:

  • 创建一个 Python 3.9 虚拟环境并使用相同版本的 requests,以便这些别名可用。
  • 查看requests 是否有与 Python 3.10 兼容的更新版本。 (请注意,许多第三方库尚不兼容。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2015-03-09
    • 1970-01-01
    • 2021-06-21
    • 2020-09-21
    • 1970-01-01
    相关资源
    最近更新 更多