Django venv 查找旧版本的 PostgreSQL -> django.db.utils.NotSupportedError: 需要 PostgreSQL 13 或更高版本

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

我正在为一个已经两年没有在本地运行的 Django 项目恢复本地环境,解决已经过时的问题。但我的有一点不同:看起来 Django 正在寻找/使用比我在 venv 本身中看到的版本更旧的 PostgreSQL 版本。追踪旧版本以便删除它们的好方法是什么?

当我跑步

python mysite/manage.py runserver
时,我得到

django.db.utils.NotSupportedError: PostgreSQL 13 or later is required (found 10.13).

但是当我检查正在运行的 venv 中的软件包版本时,大多数软件包都是最新的,并且 PostgreSQL 是 3.12.5(不是我们最终需要的 13 或更高版本,但也不是 10.13)。

  • (来自 pip 列表)Django 5.1

  • (来自 pip 列表)psycopg2 2.9.9

  • (来自 pip 列表)psycopg2-binary 2.9.9

  • (来自 pip 列表)psycopg2-pool 1.2

  • psql -V 给出:psql (PostgreSQL) 12.3

  • python -v 给出:Python 3.12.5

毫不奇怪,如果我尝试从 venv (

pip uninstall postgresql-10.13
) 进行天真的卸载,它会说它尚未安装。

追踪 10.13 可能来自何处的好方法是什么?

查看堆栈跟踪,在连接到数据库时引发此 NotSupportedError,来自 .venv/lib/python3.12/site-packages/django/db/backends/base/base.py”,第 200 行,在 check_database_version_supported

从 venv 中,我的 $PATH 变量有:

/Users/dkaplan/.vscode/extensions/ms-python.python-2024.12.3-darwin-x64/python_files/deactivate/bash:/Users/dkaplan/family-django/.venv/bin:/Library/Frameworks/ Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/ bin:/bin:/usr/sbin:/sbin:/Users/dkaplan/.m2:/Applications/Postgres.app/Contents/Versions/latest/bin:/var/run/com.apple.security.cryptexd/codex .system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system /bootstrap/usr/appleinternal/bin:/Users/dkaplan/.vscode/extensions/ms-python.python-2024.12.3-darwin-x64/python_files/deactivate/bash:/Users/dkaplan/family-django/.venv /bin:/Library/Frameworks/Python.framework/Versions/3.12/bin:/Library/Frameworks/Python.framework/Versions/3.10/bin

我的默认数据库设置是:

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": DB_DATABASE,
        "USER": DB_USER,
        "PASSWORD": DB_PASSWORD,
        "HOST": DB_HOST,
        "PORT": "5432",
        "OPTIONS": DB_OPTIONS,
    }
}
django psycopg2 python-venv
1个回答
0
投票

您无法 pip uninstall postgresql-10.13,因为 postgresql-10.13 不是 Python 包。

您可以像卸载计算机中的程序一样卸载特定版本的 postgresql。请参阅卸载 PostgreSQL

© www.soinside.com 2019 - 2024. All rights reserved.