2012-09-18 5 views
1

나는 총 n00b 프로그래밍이고 방금 장고를 배우기 시작했다. 나는 SQLite로 일을 처리 할 수 ​​있었지만 PostgreSQL과 완전히 멈춘 상태였습니다 ... 나는 Stackoverflow 및 기타 장소를 몇 시간 동안보고 있었고 좋은 대답을 찾을 수 없었습니다.Postgresql Psycopg2

내 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 
+0

이 psycopg2가 설치되어 발생하지? –

+1

'psycopg2'가 설치되어 있습니까? 그것은 어떤 기호를 놓치고있는 것에 대해 불평하는 것처럼 보입니다 ...'pip install psycopg2'는 그것을 바로 잡아야합니다 ... – tkone

+0

PostgreSQL 라이브러리가 누락되었을 수 있습니다. * MacPorts *가 설치되어 있다면, * pyscopg2 * [다운로드 페이지] (http://www.initd.org/psycopg/download/)는 * MacPorts *에서 바이너리 패키지를 설치할 것을 제안합니다 :'sudo port install py27-psycopg2 '에는 필요한 모든 의존성이 포함되어야합니다. –

답변

0

오류 읽기, I 이것이 캐스퍼라고 생각하지 않아. e는 psycopg2가 설치되지 않았지만 올바르게로드되지 않았기 때문입니다. 뭔가 잘못되었습니다.

libpq (postgresql 클라이언트 라이브러리)와 관련된 헤더 파일을 설치했는지 확인합니다. psycopg2를 제거하고 다시 설치하려고합니다.

헤더 파일이 설치되어있는 libpq와 동일한 버전인지 확인하십시오. 예상 심볼 내보내기에 문제가있는 것 같아서 라이브러리 버전 문제를 암시합니다.

1

기본적으로 psycopg2는 OSX에서 컴파일되지 않습니다.

가능하면 유지 관리자는 Fink 또는 Macports의 버전을 사용하는 것이 좋습니다 (http://initd.org/psycopg/install/). http://initd.org/psycopg/articles/2010/11/11/links-about-building-psycopg-mac-os-x/

IIRC,이 문제를 해결할 수있는 가장 좋은 방법입니다 :

  • 설치 환경은 바르 당신이 소스에서 설치에 /이 필요합니다

    , 그들은 주변의 일반적인 문제를 얻을 이러한 링크를 제공합니다 pip/easy_install (빌드중인 postgresql 클라이언트/서버에 대한 모든 설정 정보가 있음)을 수행하거나 수동으로 빌드하면 setup.cfg에 수동으로 기록해두면 올바른 pg_config 바이너리를 선택합니다.

  • oars 설치에 알맞은 ARCHFLAGS를 설정하려면 환경 변수를 설정하십시오. 때때로 파이썬은 32 비트 설치에서 64 비트를 빌드하려고하거나 그 반대의 경우도 시도합니다.

  • 새로 설치할 사람들이 libssl에 문제로 실행했다, 나는 그