簡體   English   中英

python manage.py migrate 的問題 -> 沒有名為 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM