M1 Mac 上的 Scrapy:MemoryError:无法为 ffi.callback() 分配写入+执行内存

DC1*_*C17 11 scrapy

我是 scrapy 新手,最近开始在 M1 MacBook Air 上使用它。我遇到了一个问题。

例如,当我尝试做这样的事情时:

scrapy shell bbc.com
Run Code Online (Sandbox Code Playgroud)

它会返回我:MemoryError:无法为 ffi.callback() 分配写入+执行内存。您运行的系统可能会阻止这种情况发生。有关更多信息,请参阅https://cffi.readthedocs.io/en/latest/using.html#callbacks

值得注意的是,如果我在 Windows 上执行完全相同的操作,一切都会正常。另外,当我在 M1 Mac 上的http://quotes.toscrape.com/或 HTTP 网站上使用 scrapy shell 时,它也可以工作。似乎是 HTTPS 问题,但我真的不确定。

任何帮助将不胜感激。

n8h*_*rie 2

我已经为此苦苦挣扎了几个月。对我来说,这似乎是 pyopenssl 的问题。我还没有找到解决办法。

如果您尝试使用http网站(而不是https),您可能会发现它有效:scrapy shell http://httpforever.com

相关问题: https: //github.com/pyca/pyopenssl/issues/873

其他对话:https ://github.com/Azure/azure-cli/issues/16907

更新20211129:

诸如此类的 HTTPS 站点scrapy shell https://www.bbc.com再次为我工作。我的环境:

  • M1 MacBook Pro
  • 苹果系统 12.0.1
  • Python 3.10.0
  • Scrapy==2.5.1