【问题标题】:'django.db.backends.postgresql_psycopg2' not working in Django 3.0'django.db.backends.postgresql_psycopg2' 在 Django 3.0 中不起作用
【发布时间】:2020-04-11 05:23:05
【问题描述】:

我正在尝试将应用程序从 Django 1.8 和 Python 2 迁移到 Python 3.6 和 Django 3.0。

每当我添加 django.db.backends.postgresql_psycopg2 并通过 pip3 安装它时,我都会收到此错误:

_psycopg2 模块未找到。

我查看了文档,发现在 Django 3.0 中删除了 _psycopg2。我该如何解决这个问题?我以前的应用程序正在运行 psycopg 2.6.1。

【问题讨论】:

标签: django python-3.x


【解决方案1】:

在 Django 3.0 中使用的正确设置是'django.db.backends.postgresql'

来自Django deprecation timeline

django.db.backends.postgresql_psycopg2 模块将被移除。

这个特定的模块实际上是deprecated since Django 2.0

django.db.backends.postgresql_psycopg2 模块在 赞成 django.db.backends.postgresql。从那以后一直是别名 姜戈 1.9。这只会影响从模块导入的代码 直接地。 DATABASES 设置仍然可以使用 'django.db.backends.postgresql_psycopg2',虽然你可以简化它 通过使用 Django 1.9 中添加的 'django.db.backends.postgresql' 名称。

databases docs 看来,您的psycopg2 版本应该受支持,因为您需要2.5.4 或更高版本。

【讨论】:

  • 是的,我做到了,我安装了 Postgres。但是当我运行我的应用程序时,我得到 django.db.utils.OperationalError Could not connect to server on port 5432 。这是我第一次创建应用程序。我仍然无法运行它。
  • 这听起来与您发布的问题完全不同。您应该在问题中包含所有信息,以便清楚您的实际问题是什么。您是否看过 this post 关于无法从 Django 连接到 Postgres 的问题?
  • 我检查了那个,但没有帮助。我正在尝试他们给服务 postgresql 状态的命令,它一直给我 Postgres.service no found
  • 我真的不知道如何解决这个问题,但我确定以前有人问过这个问题,例如here。看看你还可以尝试什么,如果这不能解决它,请发布一个新问题,其中包含你在此处提供给我的信息,最好是完整追溯你所遇到的错误以及你迄今为止尝试过的内容,并希望有人将能够解决您的问题。根据您提供的信息,我已尽力在这里回答您的问题,但您似乎对 Postgres 本身有问题,这与 Django 无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
相关资源
最近更新 更多