Postgresql

在 virtualenv 中安裝後,django 找不到 psycopg2

  • August 14, 2014

我想將 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': '',
   }
}

使用 sudo ( sudo pip install ...) 安裝會導致安裝的文件歸 root 所有,而 Django(不使用 sudo 執行)無法讀取它們。您可以sudo pip uninstall psycopg2然後在沒有 sudo 的情況下安裝。(如果這不起作用,請先嘗試sudo chown -R $USER ~/.virtualenvs/myvenv(假設那是您的 virtualenv 路徑)。

引用自:https://serverfault.com/questions/619879