不使用 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):
- 像往常一样部署你的 Django 应用程序,除了数据库部分
- 创建 PostgreSQL 数据库。记下它的名称以及您添加到其中的用户的用户名和密码。
- 在 CPanel 中启动终端(您也可以通过 SSH 执行此操作),进入虚拟环境并执行以下命令来安装 psycopg2(二进制分发版):
pip install psycopg2-binary
- 现在编辑您的 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 而不是本地主机
- 您的数据库已配置完毕。重新启动 python 应用程序,进行迁移等
我正在使用 Python 3.7 和 Django 3.0
我也在 blog 上写了一篇关于这个的 post。
我正在 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):
- 像往常一样部署你的 Django 应用程序,除了数据库部分
- 创建 PostgreSQL 数据库。记下它的名称以及您添加到其中的用户的用户名和密码。
- 在 CPanel 中启动终端(您也可以通过 SSH 执行此操作),进入虚拟环境并执行以下命令来安装 psycopg2(二进制分发版):
pip install psycopg2-binary
- 现在编辑您的 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 而不是本地主机
- 您的数据库已配置完毕。重新启动 python 应用程序,进行迁移等
我正在使用 Python 3.7 和 Django 3.0
我也在 blog 上写了一篇关于这个的 post。