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

2024-06-02 09:37:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在cPanel托管环境(namesheap)中部署一个Django项目。你知道吗

nameseap目前只支持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不是namesheap(共享托管计划)的选项。你知道吗

所以我的问题是,如果我尝试做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的“官方”/“支持”模块?如果没有,我可以使用什么psycopg2替代包,以及通常如何实现?你知道吗


Tags: todjangofromclient环境versionpostgresql部署
2条回答

您可以安装psycopg2.6.2。Libpq>;=9.1是必需的,因为psycopg 2.7。你知道吗

试试pip install "psycopg2<2.7"。你知道吗

我还尝试在共享主机上使用带有Django的PostgreSQL数据库。一开始我遇到了问题,但现在我使用它没有问题。以下是在共享主机上使用带有Django的PostgreSQL数据库的过程(尽管我使用的是psycopg2):

  1. 像往常一样部署Django应用程序,除了数据库部分
  2. 创建PostgreSQL数据库。请记下它的名称以及您添加到其中的用户的用户名和密码。你知道吗
  3. 在CPanel中启动终端(也可以通过SSH),进入虚拟环境并执行以下命令来安装psycopg2(二进制分发):
    pip install psycopg2-binary
  1. 现在编辑你的设置.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而不是localhost

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

我使用的是python3.7和django3.0

我也在我的blog上写了一篇关于这个的帖子。你知道吗

相关问题 更多 >