不使用 psycopg2 是否可以使用 Django PostgreSQL 后端? cPanel 和共享主机部署约束

Is a Django PostgreSQL Backend Possible Without Using psycopg2? cPanel and Shared Hosting Deployment Constraints

我正在 cPanel 托管环境 (NameCheap) 中部署 Django 项目。

NameCheap 目前仅支持 PostgreSQL:8.4.20。

我想使用 PostgreSQL 作为我的 Django 数据库后端但是(见粗体要求):

The current psycopg2 implementation supports:

  • Python version 2.7
  • Python 3 versions from 3.4 to 3.8
  • PostgreSQL server versions from 7.4 to 12
  • PostgreSQL client library version from 9.1

从 8.4.20 升级到 >= 9.1 不是 NameCheap(共享主机计划)中的一个选项。

所以我的问题是,如果我尝试执行 pip install psycopg2,我会收到错误消息:

./psycopg/psycopg.h:30:2: error: #error "Psycopg requires
PostgreSQL client library (libpq) >= 9.1

因为 PostgreSQL 8.4.20 < PostgreSQL: 9.1.

我的问题是:

psycopg2 是 Django 和 PostgreSQL 唯一的 "approved"(?) / "official" / "supported" 模块吗?如果没有,我可以使用什么 psycopg2 替代包以及一般如何实施?

您可以安装psycopg 2.6.2。 Libpq >= 9.1 仅在 psycopg 2.7 之后才需要。

尝试pip install "psycopg2<2.7"

我还尝试在 Namecheap 共享主机上使用 PostgreSQL 数据库和 Django。我一开始遇到问题,但现在我可以毫无问题地使用它。以下是在共享主机上将 PostgreSQL 数据库与 Django 一起使用的过程(尽管我使用的是 psycopg2):

  1. 像往常一样部署你的 Django 应用程序,除了数据库部分
  2. 创建 PostgreSQL 数据库。记下它的名称以及您添加到其中的用户的用户名和密码。
  3. 在 CPanel 中启动终端(您也可以通过 SSH 执行此操作),进入虚拟环境并执行以下命令来安装 psycopg2(二进制分发版):
    pip install psycopg2-binary
  1. 现在编辑您的 settings.py 并为数据库添加以下配置:
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'database_name',
    'USER': 'database_username',
    'PASSWORD': 'database_password',
    'HOST': '127.0.0.1',
    'PORT': '5432',
}

确保使用 127.0.0.1 而不是本地主机

  1. 您的数据库已配置完毕。重新启动 python 应用程序,进行迁移等

我正在使用 Python 3.7 和 Django 3.0

我也在 blog 上写了一篇关于这个的 post。