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

问题描述 投票:0回答:7

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

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

scrapy shell bbc.com

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

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

任何帮助将不胜感激。

scrapy
7个回答
5
投票
conda uninstall --force cffi
pip install cffi

https://github.com/snowflakedb/snowflake-connector-python/issues/1205


3
投票

您只需升级requests模块即可

pip3 install --upgrade requests

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
  • MacOS 12.0.1
  • Python 3.10.0
  • Scrapy==2.5.1

1
投票

如果你的scrapy版本是2.7.1,Python版本较低并且你使用anaconda,我建议你可以将Python版本更新到3.10,我就是这样解决问题的


0
投票

我昨天也遇到这个问题了。我所做的是使用 python 3.10.4 创建一个虚拟环境。

conda create -n scrapyPy310 python==3.10.4
source activate scrapyPy310
pip install scrapy
scrapy shell www.bbc.com

0
投票

我在使用

scrapy
安装
conda install -c conda-forge scrapy
时也遇到了这个问题。

但是,当我使用

pip
安装它时,它对我有用。

conda create -n scrapy python=3.10
conda activate scrapy
pip install scrapy

scrapy shell https://bbc.com

这是我的包裹:

(scrapy) √ ~ % conda list
# packages in environment at /Users/x/anaconda3/envs/scrapy:
#
# Name                    Version                   Build  Channel
attrs                     22.1.0                   pypi_0    pypi
automat                   22.10.0                  pypi_0    pypi
bzip2                     1.0.8                h620ffc9_4
ca-certificates           2022.10.11           hca03da5_0
certifi                   2022.9.24       py310hca03da5_0
cffi                      1.15.1                   pypi_0    pypi
charset-normalizer        2.1.1                    pypi_0    pypi
constantly                15.1.0                   pypi_0    pypi
cryptography              38.0.3                   pypi_0    pypi
cssselect                 1.2.0                    pypi_0    pypi
filelock                  3.8.0                    pypi_0    pypi
hyperlink                 21.0.0                   pypi_0    pypi
idna                      3.4                      pypi_0    pypi
incremental               22.10.0                  pypi_0    pypi
itemadapter               0.7.0                    pypi_0    pypi
itemloaders               1.0.6                    pypi_0    pypi
jmespath                  1.0.1                    pypi_0    pypi
libcxx                    14.0.6               h848a8c0_0
libffi                    3.4.2                hc377ac9_4
lxml                      4.9.1                    pypi_0    pypi
ncurses                   6.3                  h1a28f6b_3
openssl                   1.1.1s               h1a28f6b_0
packaging                 21.3                     pypi_0    pypi
parsel                    1.7.0                    pypi_0    pypi
pip                       22.2.2          py310hca03da5_0
protego                   0.2.1                    pypi_0    pypi
pyasn1                    0.4.8                    pypi_0    pypi
pyasn1-modules            0.2.8                    pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pydispatcher              2.0.6                    pypi_0    pypi
pyopenssl                 22.1.0                   pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
python                    3.10.6               hbdb9e5c_1
queuelib                  1.6.2                    pypi_0    pypi
readline                  8.2                  h1a28f6b_0
requests                  2.28.1                   pypi_0    pypi
requests-file             1.5.1                    pypi_0    pypi
scrapy                    2.7.1                    pypi_0    pypi
service-identity          21.1.0                   pypi_0    pypi
setuptools                65.5.0          py310hca03da5_0
six                       1.16.0                   pypi_0    pypi
sqlite                    3.39.3               h1058600_0
tk                        8.6.12               hb8d0fd4_0
tldextract                3.4.0                    pypi_0    pypi
twisted                   22.10.0                  pypi_0    pypi
typing-extensions         4.4.0                    pypi_0    pypi
tzdata                    2022f                h04d1e81_0
urllib3                   1.26.12                  pypi_0    pypi
w3lib                     2.0.1                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
xz                        5.2.6                h1a28f6b_0
zlib                      1.2.13               h5a0b063_0
zope-interface            5.5.1                    pypi_0    pypi

-1
投票

在conda环境下安装cffi

conda install cffi
© www.soinside.com 2019 - 2024. All rights reserved.