在virtualenv中安装后django找不到psycopg2

8 postgresql django virtualenv

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

sudo apt-get install libpq-dev python-dev
sudo apt-get update
workon myenv
sudo pip install psycopg2
Run Code Online (Sandbox Code Playgroud)

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

./manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

但是会抛出异常:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
Run Code Online (Sandbox Code Playgroud)

数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'postgres',
        'PASSWORD': 'password1234',
        'HOST': 'localhost',
        'PORT': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

xof*_*fer 4

使用 sudo ( sudo pip install ...) 安装会导致安装的文件归 root 所有,并且 Django(不使用 sudo 运行)无法读取它们。您可以sudo pip uninstall psycopg2在没有 sudo 的情况下安装。(如果这不起作用,sudo chown -R $USER ~/.virtualenvs/myvenv请先尝试(假设这是您的 virtualenv 路径)。

  • 你是我的救世主 (2认同)