2010-01-27 2 views
0

그래서 처음으로 장고를 mod-wsgi로 실행하려고합니다. 예와 같이 Apache를 구성 했으므로 모든 것이 올바르게 수행되었다고 확신합니다.Django + mod-wsgi + psycopg2 문제

변수를 설정하지 않았으므로 기본값 : /var/www/.python-eggs을 사용합니다. 이 디렉토리를 작성하여 사용자 www-data에 대해 쓰기 가능으로 만들었습니다.

다음
... 
    File "/usr/local/.../parts/django/django/db/__init__.py", line 17, in load_backend 
    return import_module('.base', 'django.db.backends.%s' % backend_name) 
    File "/usr/local/.../parts/django/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/usr/local/.../parts/django/django/db/backends/postgresql_psycopg2/base.py", line 22, in <module> 
    raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e) 
ImproperlyConfigured: Error loading psycopg2 module: cannot import name tz 

내가 /var/www/.python-eggs/

# ls -la /var/www/.python-eggs/ 
total 12 
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 . 
drwxr-xr-x 5 root  root  4096 Jan 27 04:18 .. 
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 psycopg2-2.0.13-py2.5-linux-i686.egg-tmp 

# ls -la /var/www/.python-eggs/psycopg2-2.0.13-py2.5-linux-i686.egg-tmp/psycopg2/ 
total 368 
drwxr-xr-x 2 www-data www-data 4096 Jan 27 04:19 . 
drwxr-xr-x 3 www-data www-data 4096 Jan 27 04:19 .. 
-rwxr-xr-x 1 www-data www-data 363318 Jan 22 03:44 _psycopg.so 

에 psycopg2 계란에있는 유일한 파일이 무엇 : 나는 사이트를 열 때

그것은 500.html 템플릿의 출력을 보여줍니다 여기에 내가 로그에 무엇을 얻을 디렉토리는 _psycopg.so입니다. tz.py 파일이없고 이것이 문제라고 생각합니다.

상담하십시오.

추신 : 저는 buildout과 djangorecipe을 사용하여 Django를 배포합니다. 내가 buildout 사용자 buildout 스크립트를 실행합니다. 비록 이해가되는지 확실하지 않습니다.

P.P.S, psycopg2이 (가) syncdb을 실행할 수 있기 때문에 올바르게 설치되었습니다.

+0

"psycopg2 import tz"에서 통역사를 사용하면 어떻게됩니까? –

+0

인터프리터에서 "psycopg2 import tz"을 실행하면 모든 것이 잘 작동합니다. 내가 syncdb를 실행할 수 있다고 말했기 때문에 psycopg2가 올바르게 설치되었습니다. –

+1

django.wsgi에서 os.environ [ 'PYTHON_EGG_CACHE'] = '/ tmp'설정을 시도해보고 차이가 있는지 확인하십시오. – Bear

답변

1

좋아, 해결책을 찾았습니다. buildout을 위해 시스템 파이썬을 사용했고 이미 사이트 패키지에 psycopg2가있었습니다. 시스템 사이트 패키지의 psycopg2와 빌드 아웃 (buildout)에 의해 설치된 패키지 사이에 일종의 충돌이 있었던 것 같습니다. 가상 파이썬 환경을 설정하고 빌드 아웃에 사용했습니다. 그리고 이것이 도움이되었습니다! 가져 오기 오류가 더 이상 발생하지 않습니다.

0

명령 줄에서 가져올 수 있다면 어딘가에 경로를 올리면 www- 데이터 사용자가 난 경로에 액세스 할 수 없다는 것을 제안합니다.

관련 문제