关于scrapy在pycharm中run模式可以运行,但是debug模式不行的问题
点击run就可以运行,但是debug就是运行不了
一点击debug就报这个错,也不知道啥原因
报错:
[asyncio] ERROR: Exception in callback <Task pending name='Task-1' coro=<ExecutionEngine.open_spider() running at E:\code\top_baidu_crawl\venv\Lib\site-packages\scrapy\core\engine.py:406> cb=[Deferred.fromFuture.<locals>.adapt() at E:\code\top_baidu_crawl\venv\Lib\site-packages\twisted\internet\defer.py:1251]>()
handle: <Handle <Task pending name='Task-1' coro=<ExecutionEngine.open_spider() running at E:\code\top_baidu_crawl\venv\Lib\site-packages\scrapy\core\engine.py:406> cb=[Deferred.fromFuture.<locals>.adapt() at E:\code\top_baidu_crawl\venv\Lib\site-packages\twisted\internet\defer.py:1251]>()>
Traceback (most recent call last):
File "D:\python3.12.1\Lib\asyncio\events.py", line 88, in _run
self._context.run(self._callback, *self._args)
TypeError: 'Task' object is not callable
解决方案
双击shift——搜索registry——找到 python.debug.asyncio.repl——取消勾选——保存
这个勾选去掉,就可以正常debug了,
查了下原因
在 PyCharm 中,python.debug.asyncio.repl 是一个 注册表选项(Registry Key),用于控制调试器在处理 异步代码(asyncio) 时的行为,特别是与 调试控制台(Debug Console) 的交互相关。其核心作用如下:
功能说明
启用异步 REPL 支持:
当设置为 True 时,PyCharm 的调试控制台会支持异步交互模式。
你可以在调试过程中直接在控制台中输入await
表达式(如 await some_async_function()
),并立即执行异步代码。
若未启用(默认值),调试控制台可能无法直接执行 await
命令,导致异步代码调试受阻。
解决异步调试问题:
在调试异步代码时(如使用 asyncio、async/await),部分 PyCharm 版本可能存在控制台交互的兼容性问题。
启用此选项可强制调试器适配异步环境,避免出现 RuntimeError: This event loop is already running 等错误。