【问题标题】:Scrapy - AttributeError: type object 'SettingsFrame' has no attribute 'ENABLE_CONNECT_PROTOCOL'Scrapy - AttributeError:类型对象“SettingsFrame”没有属性“ENABLE_CONNECT_PROTOCOL”
【发布时间】:2021-12-13 12:15:20
【问题描述】:

我在 Windows 上使用 Conda 环境。 刚安装scrapy,我就在试用中。而且我在启动scrapy shell时遇到了问题。 我输入scrapy shell "url"。我收到此错误消息:

(first_scrapy) C:\Users\jjang\Documents\GitHub\python_scrapy>scrapy shell "https://www.tutorialspoint.com/python/tk_entry.htm"
Traceback (most recent call last):
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\Scripts\scrapy-script.py", line 6, in <module>
    from scrapy.cmdline import execute
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\scrapy\__init__.py", line 12, in <module>
    from scrapy.spiders import Spider
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\scrapy\spiders\__init__.py", line 11, in <module>
    from scrapy.http import Request
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\scrapy\http\__init__.py", line 11, in <module>
    from scrapy.http.request.form import FormRequest
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\scrapy\http\request\form.py", line 16, in <module>
    from scrapy.utils.response import get_base_url
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\scrapy\utils\response.py", line 14, in <module>
    from twisted.web import http
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\twisted\web\http.py", line 185, in <module>
    from twisted.web._http2 import H2Connection
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\twisted\web\_http2.py", line 27, in <module>
    import h2.connection  # type: ignore[import]
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\h2\connection.py", line 23, in <module>
    from .events import (
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\h2\events.py", line 14, in <module>
    from .settings import ChangedSetting, _setting_code_from_int
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\h2\settings.py", line 25, in <module>
    class SettingCodes(enum.IntEnum):
  File "C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\h2\settings.py", line 60, in SettingCodes
    ENABLE_CONNECT_PROTOCOL = SettingsFrame.ENABLE_CONNECT_PROTOCOL
AttributeError: type object 'SettingsFrame' has no attribute 'ENABLE_CONNECT_PROTOCOL'

有人向我解释这个错误吗?我在 SOF 中看到一些帖子,许多人建议升级版本。在这种情况下,我该怎么办?

【问题讨论】:

    标签: python scrapy conda


    【解决方案1】:

    我也遇到过。

    首先尝试升级h2,conda install -c conda-forge h2, 或使用点子

    pip uninstall h2
    pip install h2==3.2.0
    

    如果它不起作用,您可以这样做(这样做需要您自担风险,但这是我所做的并且有效):

    打开“C:\Users\jjang\anaconda3\envs\first_scrapy\lib\site-packages\hyperframe\frame.py”

    在“class SettingsFrame(Frame)”里面添加下面一行:

    ENABLE_CONNECT_PROTOCOL = 0x01
    

    保存文件并重新启动您的 IDE/终端。

    【讨论】:

    • 非常感谢。我在更改设置框架后解决了它。我不知道我只给了一个接受。也许,我不知道那个功能。请检查我是否接受了您的回答。再次感谢您
    • 没问题,欢迎您。
    • @SuperUser 也为我工作!非常感谢:)
    • @Ashine 欢迎您!
    猜你喜欢
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多