You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anaconda环境下如何强制Python加载正确的brotli包?

强制Python加载Google Brotli包的解决方案

问题原因

brotlipy与Google官方的brotli包均提供了名为brotli的Python模块,而Anaconda环境中conda包的路径优先级默认高于pip包,因此Python会优先加载brotlipy的实现,导致调用新版本分块压缩API报错。

可行解决方法

1. 调整sys.path优先级

  • 先通过pip show brotli命令获取Google brotli包的安装路径,找到Location字段对应的目录,比如/your/anaconda/env/lib/python3.9/site-packages/brotli
  • 在代码的最开头添加以下代码,将Google brotli的路径插入到模块搜索路径的最前端:
import sys
# 替换为实际的Google brotli路径
sys.path.insert(0, "/your/anaconda/env/lib/python3.9/site-packages/brotli")
import brotli
# 验证是否加载正确
print(brotli.__file__)  # 输出应为Google brotli的路径,而非brotlipy的路径

2. 直接指定模块路径导入

如果调整sys.path无效,可以用importlib直接加载指定路径的brotli模块,同样放在代码最开头:

import importlib.util
import sys

# 替换为Google brotli包的__init__.py路径
brotli_path = "/your/anaconda/env/lib/python3.9/site-packages/brotli/__init__.py"
spec = importlib.util.spec_from_file_location("brotli", brotli_path)
brotli = importlib.util.module_from_spec(spec)
sys.modules["brotli"] = brotli
spec.loader.exec_module(brotli)

# 验证
print(brotli.__file__)

3. 保留brotlipy的同时重命名Google brotli

如果需要同时保留两个包的调用,可以在安装时给Google brotli重命名:

  • 先卸载已安装的brotli:pip uninstall -y brotli
  • 克隆官方源码:git clone https://github.com/google/brotli.git
  • 进入源码目录,修改setup.py中的name字段为google-brotli,然后执行pip install .
  • 之后在代码中通过import google_brotli as brotli来调用官方版本

内容的提问来源于stack exchange,提问作者FooBar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 23:04:58