在 virtualenv 中安装后,django 未找到 psycopg2

在 virtualenv 中安装后,django 未找到 psycopg2

我想将 postgresql 与 django 一起使用,因此执行以下操作:

sudo apt-get install libpq-dev python-dev
sudo apt-get update
workon myenv
sudo pip install psycopg2

正确配置后settings.py,我运行

./manage.py syncdb

但抛出一个异常:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'postgres',
        'PASSWORD': 'password1234',
        'HOST': 'localhost',
        'PORT': '',
    }
}

答案1

使用 sudo ( sudo pip install ...) 安装会导致安装的文件由 root 拥有,而 Django(无需 sudo 即可运行)无法读取它们。您可以sudo pip uninstall psycopg2然后在不使用 sudo 的情况下进行安装。(如果这不起作用,请先尝试sudo chown -R $USER ~/.virtualenvs/myvenv(假设这是您的虚拟环境路径)。

相关内容