1

私は完全なプログラミングの初心者で、django を学び始めたばかりです。私は SQLite で物事を成し遂げることができましたが、PostgreSQL では完全に行き詰まりました... 私は何時間も Stackoverflow や他の場所を調べてきましたが、良い答えを見つけることができませんでした.

私のsettings.pyファイル:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'user',
        'PASSWORD': 'passwd',
        'HOST': 'localhost',
        'PORT': '',
}

}

ターミナルで実行するコマンド:

$ python manage.py validate    

端末出力:

Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle
return self.handle_noargs(**options)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/validate.py", line 9, in handle_noargs
self.validate(display_num_errors=True)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/base.py", line 266, in validate
num_errors = get_validation_errors(s, app)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/validation.py", line 23, in get_validation_errors
from django.db import models, connection
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 92, in __getitem__
backend = load_backend(db['ENGINE'])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 24, in load_backend
return import_module('.base', backend_name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 13, in <module>
from django.db.backends.postgresql_psycopg2.creation import DatabaseCreation
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/creation.py", line 1, in <module>
import psycopg2.extensions
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/__init__.py", line 67, in <module>
from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Symbol not found: _PQbackendPID
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/psycopg2/_psycopg.so
Expected in: dynamic lookup
4

2 に答える 2

1

デフォルトでは、psycopg2 は OSX 上で正しくコンパイルされません。

メンテナーは、可能であれば Fink または Macports のバージョンを使用することを提案しています ( http://initd.org/psycopg/install/ )。

ソースからインストールする必要がある場合は、一般的な問題を回避する次のリンクが提供されます。 -バツ/

IIRC、これを処理する最良の方法は次のとおりです。

  • 環境変数をセットアップして、pip/easy_install を実行する場合に適切な pg_config バイナリを確実に選択するようにする (ビルド対象の postgresql クライアント/サーバーの構成情報がすべて含まれている) か、手動で行う場合は setup.cfg に手動でメモします。建てる。

  • 環境変数をセットアップして、osx インストール用に適切な ARCHFLAGS を明示的に設定します。ときどき、Python は 32 ビット インストールで 64 ビットをビルドしようとするか、またはその逆を試みます。

  • 新しいインストールでは、人々が libssl で問題に遭遇しましたが、私はそれらに遭遇したことはありません

于 2013-03-10T21:12:53.337 に答える
0

エラーを読んで、これは psycopg2 がインストールされていない場合ではないと思いますが、正しくロードされていないためです。ここは何かがおかしい。

libpq (postgresql クライアント ライブラリ) と関連するヘッダー ファイルがインストールされていることを確認してください。次に、psycopg2 を削除して、再度インストールを試みます。

それが失敗した場合は、ヘッダー ファイルが、インストールしたものと同じバージョンの libpq 用であることを確認してください。期待されるシンボルのエクスポートが存在しないという問題が発生しているようです。これは、ライブラリのバージョン管理の問題の可能性を示唆しています。

于 2012-09-22T02:02:59.110 に答える