39

Macportsを使用してPythong2.6、psycopg2、pgAdmin3をインストールしています。私のsettings.pyは次のとおりです。

DATABASE_ENGINE = 'postgresql_psycopg2'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'mysite'             # Or path to database file if using sqlite3.
DATABASE_USER = 'postgres'             # Not used with sqlite3.
DATABASE_PASSWORD = ''         # Not used with sqlite3.
DATABASE_HOST = ''             # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ''             # Set to empty string for default. Not used with sqlite3.

pythonmanage.pysyncdbを実行したときに発生するエラーは次のとおりです。

Traceback (most recent call last):
  File "manage.py", line 11, in <module>
    execute_manager(settings)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 221, in execute
    self.validate()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
    from django.db import models, connection
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module>
    backend = load_backend(settings.DATABASE_ENGINE)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend
    return import_module('.base', 'django.db.backends.%s' % backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

注意してください、私はこのようなものの完全な初心者です。私はもともとPHPの人で、小さな個人的なプロジェクトでPythonを試しています。Postgresを「オン」にする必要がありますか?

また、sudo python manage.py runserver 8080を実行すると、次のエラーが発生します。

Validating models...
Unhandled exception in thread started by <function inner_run at 0x1242670>
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run
    self.validate(display_num_errors=True)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
    from django.db import models, connection
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module>
    backend = load_backend(settings.DATABASE_ENGINE)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend
    return import_module('.base', 'django.db.backends.%s' % backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module>
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

案内してください。返信をいただければ幸いです。

ありがとう、

ウェンバート!

4

18 に答える 18

40

インストールに問題があるようpsycopg2です–Pythonはそれを検出しません。これはPythonのインストールの問題であり、Djangoの問題ではありません。

Pythonインタープリターを使用して手動でロードし、機能するかどうかを確認できます。

$ python
>>> import psycopg2

例外が発生した場合ImportError、インストールは誤りです。Pythonがモジュールを探すすべてのディレクトリのリストを取得するには、次を使用しますsys.path

$ python
>>> import sys
>>> print sys.path

sys.path変数を変更して、Pythonのモジュール検索パスにカスタムディレクトリを追加することもできます。importそれぞれのステートメントの前のどこかでこれを行います。

import sys
sys.path.append("my-path")

# ...
import psycopg2
于 2009-09-05T11:51:18.973 に答える
30

インストール済みの場合は、次pipのコマンドを実行して不足している拡張機能をインストールします。

$ pip install psycopg2
于 2012-05-01T14:18:47.013 に答える
17

記録として、別の理由で同じエラーが発生しました。

入れていた

'ENGINE': 'django.db.backends.postgresql'

それ以外の

'ENGINE': 'django.db.backends.postgresql_psycopg2'

settings.py

于 2011-02-28T23:14:05.817 に答える
7

手順に従ってください:

  1. OSにPythonライブラリをインストールします。
    • python-dev
    • libpq-dev
  2. 次のコマンドを実行して、psycopg2ライブラリ をインストールします。
    • easy_install psycopg2

ソース: http: //initd.org/psycopg/install/

于 2012-02-29T11:24:07.337 に答える
4

psycopg2 がインストールされていないことに気付きました

aptitude install python-psycopg2

魔法のように働いた

于 2012-08-15T16:46:49.590 に答える
4

OSXで自作を更新した後、最近この問題が発生しました。psycopg2 は既に私の virtualenv にリストされていました。psycopg2 を再インストールしたところ、再び機能しました。

pip install --force-reinstall psycopg2

于 2015-08-12T03:47:32.130 に答える
3

インストールしましたが、Pythonは明らかにモジュールpsycopg2を見つけることができません。これは通常、モジュールがPythonのパスにないことが原因です。にpsycopg2という名前のフォルダが見つかるかどうかを確認してください/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages。そこにない場合、MacPortsはpsycopg2をどこに置いたかを教えてくれましたか?見つけられたら、site-packagesディレクトリに移動するだけで大​​丈夫です。

于 2009-09-05T11:49:09.770 に答える
2

私にとって、psycopg2 は確かにインストールされていましたが、Django が実行されている virtualenv にはインストールされていませんでした。これらの2つの手順で修正されました:

sudo apt-get build-dep python-psycopg2
sudo /opt/myenv/bin/pip install psycopg2
于 2014-12-20T13:59:41.457 に答える
1

はい、ティムの答えは私にも当てはまります。接頭辞「django.db.backends」なしで機能します。また。ただし、settings.py で言及したデータベースまたはスキーマを作成することを忘れないでください。

DATABASE_NAME = 'your_db_name' 

データベースクライアントを手動で使用して、「python manage.py syncdb」を実行しても同じ問題は発生しません。手動で作成しなかったため、行き詰まりました。ビルドアウトを使用したため、同じ問題が発生した可能性があります。

于 2011-06-21T05:37:51.767 に答える
1

同じエラーが発生しましたが、それはpython26 ./manage.py runserver、virtualenvpythonpython2.6実行可能ファイルしかないときに使用していたためです (したがって、インストールされpython26ていないシステムが使用されていました)。psycopg2

于 2011-07-11T09:59:46.963 に答える
0

ティムの答えも私にとってはうまくいきました。デフォルトでは、settings.py は「postgresql_psycopg2」、「mysql」などのオプションをパッケージ名なしで表示します。「django.db.backends.」の接頭辞。私にとってはうまくいきました(少なくともpostgresql_psycopg2では)。

于 2011-03-02T16:45:34.897 に答える
0

これは私を助けました:

PostgreSQL の bin パスを ENV に追加したところ、必要な dll を修正できました: C:\Program Files (x86)\PostgreSQL\9.4\bin

https://groups.google.com/forum/#!topic/robotframework-users/qLq9KvHe1wE

于 2015-09-16T11:26:06.963 に答える
0

Python 3.9.1 で Django 3.2.9 を使用した後pip3 install psycopg2、イニシャルpython manage.py migrateを機能させるために、これを行う必要がありました。

私の Django サイトのsettings.pyファイルで、これらの行をファイルの先頭 (from pathlib import Path行の後)に追加しました。

import sys
sys.path.append('Users/MY_USER_NAME/Sites/SITE_NAME/env/lib/python3.9/site-packages')

申し訳ありません...~/Sites/...パス設定は機能しません(試しました)。絶対パスである必要があります。

マイデータベースの設定は次のとおりです。

DATABASES = {
   'default': {
      'ENGINE': 'django.db.backends.postgresql',
      'NAME': 'DATABASE_NAME',
      'USER': os.getenv('PG_USER'),
      'PASSWORD': os.getenv('PG_PASS'),
      'PORT': '5432',
      'USE_TZ': True,
   }
}

settings.pyファイルの先頭に 2 行を追加すると、移行は正常に実行されました :)

于 2021-11-16T22:26:56.150 に答える
0

私はWindowsを使用しており、psycopg2をインストールしましたが、64ビットバージョンです。したがって、私の修正は、ここから32ビットのものをダウンロードし、仮想環境をアクティブにしてPowerShellでダウンロードすることでした。私の修正は次のとおりです。

pip uninstall psycopg2
easy_install C:\WHEREVER_I_DOWNLOADED_IT\psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe

(Windows Python 3.4 インストーラーは、easy_install と pip を自動的にインストールします。最初に easy_install を使用してインストールした場合でも、pip はパッケージを削除する最も簡単な方法です。)

于 2015-09-07T16:43:39.313 に答える