web-dev-qa-db-ja.com

Django / Python Beginner:python manage.py syncdb-psycopg2が見つかりません

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.

python manage.py syncdbを実行するとエラーが発生します:

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

案内してください。返事は大歓迎です。

おかげで、

ウェンバート!

36
wenbert

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
36
Ferdinand Beyer

pipがインストールされている場合は、次を実行して不足している拡張機能をインストールします。

$ pip install psycopg2
27
erator

レコードについては、別の理由で同じエラーが発生しました。

私は入れていました

'ENGINE': 'Django.db.backends.postgresql'

の代わりに

'ENGINE': 'Django.db.backends.postgresql_psycopg2'

settings.py

15
Tim Abell

手順に従ってください:

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

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

7
tremendows

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

aptitude install python-psycopg2

魔法のように働いた

4
Eliel

インストールしましたが、Pythonは明らかにモジュールpsycopg2を見つけることができません。これは通常、モジュールがPythonのパスにないためです。/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages。存在しない場合、MacPortsはpsycopg2の配置場所を教えてくれましたか?見つけられる場合は、site-packagesディレクトリに移動するだけで問題ありません。

3
Simon

私にとっては、psycopg2は実際にインストールされましたが、Djangoが実行されていたvirtualenvにはインストールされませんでした。次の2つのステップで修正されました。

Sudo apt-get build-dep python-psycopg2
Sudo /opt/myenv/bin/pip install psycopg2
2
aliteralmind

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

DATABASE_NAME = 'your_db_name' 

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

1
Harshith J.V.

同じエラーが発生しましたが、virtualenvにpythonおよびpython26 ./manage.py runserver実行可能ファイルしかなかったときにpython2.6を使用していたためです(したがってシステムpython26が使用されていました。 psycopg2がインストールされていませんでした

1
Craig Blaszczyk

これは私を助けました:

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

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

0
Marcin Rapacz

ここでも同じですが、現在のプロジェクトでは見逃していたので、メインのプロジェクトディレクトリに移動してインストールしました。

pip install psycopg2

そしてそれは働いた

0
Nurhun

私はWindowsで、psycopg2をインストールしていましたが、64ビットバージョンです。したがって、私の修正は、32ビットの1つを here からダウンロードし、仮想環境をアクティブにした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を自動的にインストールします。pipは、easy_installを使用して最初にインストールした場合でも、パッケージを削除する最も簡単な方法です。)

0
Chris

ティムの答えは私にも役立ちました。デフォルトでは、settings.pyはパッケージ名なしで「postgresql_psycopg2」、「mysql」などのオプションを表示します。 「Django.db.backends」で始まるプレフィックス(少なくともpostgresql_psycopg2で)私のために働いた。

0
Reece

このエラーは、Django postgresqlを使用してバックエンドがpsycopg2を直接requirements.txtファイルに追加することで、このエラーを取得できます。

OSXでhomebrewを更新した後、最近この問題が発生しました。 psycopg2はすでにvirtualenvにリストされていました。私はちょうどpsycopg2を再インストールし、再び動作しました:

pip install --force-reinstall psycopg2

0
lukeaus