Wie man sqlalchemy.exc.NoSuchModuleError behebt: Can't load plugin: sqlalchemy.dialects:postgres

English Deutsch

Problem

Beim Ausführen einer Python-Anwendung, die SQLAlchemy oder SQLModel verwendet, könnten Sie den folgenden Fehler antreffen:

sqlalchemy_error_trace.txt
...
  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/deprecations.py", line 281, in warned
    return fn(*args, **kwargs)  # type: ignore[no-any-return]
  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/create.py", line 550, in create_engine
    entrypoint = u._get_entrypoint()
  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/engine/url.py", line 758, in _get_entrypoint
    cls = registry.load(name)
  File "/usr/local/lib/python3.10/dist-packages/sqlalchemy/util/langhelpers.py", line 375, in load
    raise exc.NoSuchModuleError(
sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:postgres

Lösung

Dieser Fehler tritt auf, wenn Sie eine falsche Datenbank-URL verwenden:

Ihre Datenbank-URL sieht so aus:

postgres_url_fix.txt
postgres://user:password@localhost/database

aber der Scheme-Teil muss postgresql sein, nicht postgres.

postgresql_url_fixed.txt
postgresql://user:password@localhost/database

Check out similar posts by category: Databases, Python