![](/img/trans.png)
[英]python manage.py syncdb fails with "ImproperlyConfigured: No module named 'psycopg2'
[英]trouble with python manage.py migrate -> No module named psycopg2
我在使用 postgresql 遷移 Django 時遇到了一些問題。
這是我第一次使用 Django,我只是在學習教程。
正如 Django 網站上所建議的,我創建了一個 virtualenv 來運行 Django 項目。
接下來,我使用以下設置創建了一個 postgresql 數據庫:
在 settings.py 中,我為數據庫設置了這些值:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django_tutorial',
'USER': 'johan',
'PASSWORD': '1234',
}
}
使用 apt-get 安裝 psycopg2 時,我收到以下消息:
(venv)johan@johan-pc:~/sdp/django_tutorial/venv/django_tutorial$ sudo apt-get install python-psycopg2
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-psycopg2 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 95 not upgraded.
據我所知,這意味着安裝了 psycopg2。
跑步時
$python manage.py migrate
我收到以下錯誤消息:
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
如果需要答案,我可以提供整個堆棧跟蹤。
有人可以解釋我可以做些什么來解決這個問題嗎? 我也在谷歌上尋找一個沒有運氣的解決方案。
這一定是因為您是在系統級 python 安裝中而不是在您的 virtualenv 中安裝 psycopg2。
sudo apt-get install python-psycopg2
將它安裝在你的系統級 python 安裝中。
您可以通過以下方式將其安裝在您的 virtualenv 中
pip install psycopg2
激活您的 virtualenv 后,或者您可以使用--system-site-packages
標志創建您的 virtualenv,以便您的 virtualenv 將在您的系統級 python 中有可用的包。
virtualenv --system-site-packages test
其中test
是您的 virtualenv。
Psycopg是 Python 編程語言中最流行的 PostgreSQL 數據庫適配器。 當我嘗試使用 Postgresql 數據庫運行遷移時,我也遇到了類似的問題。 下面的步驟對我來說很好。
激活您的虛擬環境並運行以下命令
pip install psycopg2-binary
現在嘗試運行python manage.py migrate
這是因為您在 python virtualenv 中使用了 Django,正如virtualenv 網站上所述:
它創建了一個具有自己安裝目錄的環境,該環境不與其他 virtualenv 環境共享庫(並且也可選擇不訪問全局安裝的庫)。
這意味着你需要在你的 virtualenv 中安裝 psycopg2 而不是 globaly 或者讓它訪問 globaly 安裝的庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.