ModuleNotFoundError: No module named ‘blinker._saferef‘

环境描述:

 我这里用的Python 3.12.2,selenium_wire==5.1.0

报错信息:

截图

代码

File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\webdriver.py", line 28, in <module>
    from seleniumwire import backend, utils
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\backend.py", line 4, in <module>
    from seleniumwire.server import MitmProxy
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\server.py", line 5, in <module>
    from seleniumwire.handler import InterceptRequestHandler
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\handler.py", line 5, in <module>
    from seleniumwire import har
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\har.py", line 11, in <module>
    from seleniumwire.thirdparty.mitmproxy import connections
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\thirdparty\mitmproxy\connections.py", line 10, in <module>
    from seleniumwire.thirdparty.mitmproxy.net import tls, tcp
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\thirdparty\mitmproxy\net\tls.py", line 15, in <module>
    import seleniumwire.thirdparty.mitmproxy.options
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\thirdparty\mitmproxy\options.py", line 5, in <module>
    from seleniumwire.thirdparty.mitmproxy import optmanager
  File "D:\Code\Python\flask-api\.venv\Lib\site-packages\seleniumwire\thirdparty\mitmproxy\optmanager.py", line 9, in <module>
    import blinker._saferef
ModuleNotFoundError: No module named 'blinker._saferef'

解决办法:

pip install blinker==1.7.0

错误分析:

selenium-wire缺少blinker==1.7.0库依赖,因此需要安装blinker==1.7.0 

参考链接

https://github.com/seleniumbase/SeleniumBase/issues/2782

<think>好的,我需要帮助用户解决Python中出现的“No module named blinker._saferef”错误。根据用户提供的引用信息,特别是引用[1],解决方案是添加对blinker<1.8.0的直接依赖。 首先,我应该确认用户的问题是否与selenium-wire自动安装最新版blinker有关。因为最新版的blinker可能移除了_saferef模块,导致兼容性问题。用户需要固定blinker的版本,避免自动升级到不兼容的版本。 接下来,我需要分步骤说明如何添加依赖。用户可能使用pip,所以需要给出pip install的命令,并建议在requirements.txt中添加blinker<1.8.0。另外,如果用户使用虚拟环境,需要提醒他们激活环境后再安装。 然后,可能需要解释为什么这样做有效。因为selenium-wire可能依赖较新的blinker,但用户的项目需要旧版本,所以显式指定版本可以覆盖依赖项,确保安装的是兼容版本。 另外,用户可能遇到缓存问题,导致安装后依然报错,这时需要建议清除pip缓存并重新安装。例如使用--no-cache-dir选项。 最后,应该生成相关问题,帮助用户扩展了解类似问题的解决方法,例如其他模块的版本冲突,或者如何管理Python依赖等。 需要确保回答结构清晰,步骤明确,并且引用正确,在末尾添加引用标识。同时,按照用户的要求,使用中文,LaTeX格式正确,并生成相关问题。</think>### 解决 Python 中 "No module named blinker._saferef" 错误的步骤 1. **问题原因分析** 该错误通常是由于 `blinker` 库版本过高导致。从 `blinker>=1.8.0` 开始,其内部模块结构发生变化,移除了 `_saferef` 模块,而某些依赖库(如 `selenium-wire`)可能未及时适配新版,从而引发兼容性问题[^1]。 2. **解决方案** **显式固定 `blinker` 版本**:在项目中强制使用 `blinker<1.8.0`,避免自动安装新版。 - 通过 `pip` 安装指定版本: ```bash pip install "blinker<1.8.0" ``` - 若使用 `requirements.txt`,添加以下内容: ```text blinker<1.8.0 ``` 3. **验证安装** 运行以下命令检查当前 `blinker` 版本: ```bash pip show blinker ``` 确认版本号是否低于 `1.8.0`(例如 `1.7.0`)。 4. **清除缓存并重试(可选)** 若问题未解决,可能需清除 `pip` 缓存后重新安装: ```bash pip install --no-cache-dir "blinker<1.8.0" ``` 5. **虚拟环境注意事项** 若使用虚拟环境(如 `venv` 或 `conda`),需在激活环境后执行上述操作,确保依赖隔离。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值