配置不正确(“加载 psycopg2 模块时出错:%s”% e)

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

目前在 MacOS Monterey 上使用 Django 4.0 和 Python 3.10.0。运行命令后

python3 manage.py runserver

我收到此错误

ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: dlopen(/Users/tonyingle/.local/share/virtualenvs/total-weather-backend-nYZrqAi-/lib/python3.10/site-packages/psycopg2/_psycopg.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_PQbackendPID'

我已经在 pipelinev shell 及其外部安装了 pyscopg2 和 psycog2-binary。奇怪的是,一切都工作正常,直到我意识到我必须配置我的 settings.py 文件来解决我的 cors 问题,然后一切都变得混乱。

也许settings.py中有一些相关设置

ALLOWED_HOSTS = [
    "https://total-weather-backend.herokuapp.com/", "http://127.0.0.1:8000/"]

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'api',
    'rest_framework',
    'djoser',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
         ...
]

CORS_ORIGIN_ALLOW_ALL = True
python django psycopg2
4个回答
27
投票

当然,我在发布问题后就明白了,但这就是我所做的对我有用的事情。

brew install postgresql
pip install psycopg2-binary --force-reinstall --no-cache-dir

Apple M1:安装psycopg2包符号未找到:_PQbackendPID


3
投票

我正在运行

psycopg2
版本 2.9.1。我将其更新到当前最新版本2.9.4,并且有效。我用过

pip install psycopg2 -U

其中

-U
用于更新包。我在 python 虚拟环境中执行了此操作。为了安全起见,我还编辑了
requirements.txt
来提高版本,
psycopg2==2.9.4


1
投票

我通过降级到以前的版本解决了(当前最新的是2.9.6)

pip 安装 psycopg2-binary==2.9.3


0
投票

简单的解决方案:

您还需要安装二进制文件。我遇到了同样的问题,并通过运行以下命令解决了:

python3 -m pip install psycopg-binary==3.1.13
© www.soinside.com 2019 - 2024. All rights reserved.