Scrapy - AttributeError: type object 'SettingsFrame' has no attribute 'ENABLE_CONNECT_PROTOCOL'
Scrapy - AttributeError: type object 'SettingsFrame' has no attribute 'ENABLE_CONNECT_PROTOCOL'
我在 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 看到一些帖子,很多人建议升级版本。遇到这种情况,我该怎么办?
我也遇到过。
首先尝试升级 h2,conda install -c conda-forge h2
,
或者用 pip
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/terminal。
我在 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 看到一些帖子,很多人建议升级版本。遇到这种情况,我该怎么办?
我也遇到过。
首先尝试升级 h2,conda install -c conda-forge h2
,
或者用 pip
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/terminal。