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

导入MongoClient报错AttributeError: module 'h11' has no attribute 'Event'求助

问题

反复遇到如下错误,重装Ubuntu系统也无法解决。执行代码仅为:

from pymongo import MongoClient

仅安装了pymongo包,在Anaconda新建环境和本地Python 3.8.10中均出现相同错误,报错信息如下:

AttributeError                            Traceback (most recent call last)
<ipython-input-1-4aaffd5c9f5f> in <module>
----> 1 from pymongo import MongoClient

~/.local/lib/python3.8/site-packages/pymongo/__init__.py in <module>
     90 from pymongo.common import MAX_SUPPORTED_WIRE_VERSION, MIN_SUPPORTED_WIRE_VERSION
     91 from pymongo.cursor import CursorType
---&gt; 92 from pymongo.mongo_client import MongoClient
     93 from pymongo.operations import (
     94     DeleteMany,

~/.local/lib/python3.8/site-packages/pymongo/mongo_client.py in <module>
     57 from bson.son import SON
     58 from bson.timestamp import Timestamp
---&gt; 59 from pymongo import (
     60     _csot,
     61     client_session,

~/.local/lib/python3.8/site-packages/pymongo/uri_parser.py in <module>
     30 )
     31 from pymongo.errors import ConfigurationError, InvalidURI
---&gt; 32 from pymongo.srv_resolver import _HAVE_DNSPYTHON, _SrvResolver
     33 from pymongo.typings import _Address
     34 

~/.local/lib/python3.8/site-packages/pymongo/srv_resolver.py in <module>
     19 
     20 try:
---&gt; 21     from dns import resolver
     22 
     23     _HAVE_DNSPYTHON = True

~/.local/lib/python3.8/site-packages/dns/resolver.py in <module>
     36 import dns.message
     37 import dns.name
---&gt; 38 import dns.query
     39 import dns.rcode
     40 import dns.rdataclass

~/.local/lib/python3.8/site-packages/dns/query.py in <module>
     50 _have_http2 = False
     51 try:
---&gt; 52     import httpx
     53     _have_httpx = True
     54     try:

~/.local/lib/python3.8/site-packages/httpx/__init__.py in <module>
      1 from .__version__ import __description__, __title__, __version__
----> 2 from ._api import delete, get, head, options, patch, post, put, request, stream
      3 from ._auth import Auth, BasicAuth, DigestAuth
      4 from ._client import USE_CLIENT_DEFAULT, AsyncClient, Client
      5 from ._config import Limits, Proxy, Timeout, create_ssl_context

~/.local/lib/python3.8/site-packages/httpx/_api.py in <module>
      2 from contextlib import contextmanager
      3 
----> 4 from ._client import Client
      5 from ._config import DEFAULT_TIMEOUT_CONFIG
      6 from ._models import Response

~/.local/lib/python3.8/site-packages/httpx/_client.py in <module>
     27 from ._transports.asgi import ASGITransport
     28 from ._transports.base import AsyncBaseTransport, BaseTransport
---&gt; 29 from ._transports.default import AsyncHTTPTransport, HTTPTransport
     30 from ._transports.wsgi import WSGITransport
     31 from ._types import (

~/.local/lib/python3.8/site-packages/httpx/_transports/default.py in <module>
     28 from types import TracebackType
     29 
---&gt; 30 import httpcore
     31 
     32 from .._config import DEFAULT_LIMITS, Limits, Proxy, create_ssl_context

~/.local/lib/python3.8/site-packages/httpcore/__init__.py in <module>
----> 1 from ._api import request, stream
      2 from ._async import (
      3     AsyncConnectionInterface,
      4     AsyncConnectionPool,
      5     AsyncHTTP2Connection,

~/.local/lib/python3.8/site-packages/httpcore/_api.py in <module>
      3 
      4 from ._models import URL, Response
----> 5 from ._sync.connection_pool import ConnectionPool
      6 
      7 

~/.local/lib/python3.8/site-packages/httpcore/_sync/__init__.py in <module>
----> 1 from .connection import HTTPConnection
      2 from .connection_pool import ConnectionPool
      3 from .http11 import HTTP11Connection
      4 from .http_proxy import HTTPProxy
      5 from .interfaces import ConnectionInterface

~/.local/lib/python3.8/site-packages/httpcore/_sync/connection.py in <module>
     11 from ..backends.sync import SyncBackend
     12 from ..backends.base import NetworkBackend, NetworkStream
---&gt; 13 from .http11 import HTTP11Connection
     14 from .interfaces import ConnectionInterface
     15 

~/.local/lib/python3.8/site-packages/httpcore/_sync/http11.py in <module>
     42 
     43 
---&gt; 44 class HTTP11Connection(ConnectionInterface):
     45     READ_NUM_BYTES = 64 * 1024
     46 

~/.local/lib/python3.8/site-packages/httpcore/_sync/http11.py in HTTP11Connection()
    138 
    139     def _send_event(
--&gt; 140         self, event: h11.Event, timeout: Optional[float] = None
    141     ) -&gt; None:
    142         bytes_to_send = self._h11_state.send(event)

AttributeError: module 'h11' has no attribute 'Event'

解决方案

这个错误是由于h11包版本过低导致的——httpcore依赖的h11需要包含Event类,而旧版本的h11没有这个属性。按以下步骤修复:

  • 先卸载当前的h11包:
    pip uninstall -y h11
    
  • 安装兼容的h11版本(指定>=0.13.0,该版本引入了Event类):
    pip install h11>=0.13.0
    
  • 或者直接安装与当前环境匹配的最新兼容版本:
    pip install --upgrade h11
    

如果使用Anaconda环境,替换pip为conda命令操作即可:

conda remove -y h11
conda install h11>=0.13.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 18:45:31