2011-10-19 4 views
5

ovl이라는 scipy.stats.stats (scipy 버전 0.9.0)에 크게 의존하는 패키지에 장고 (1.3) 인터페이스를 생성하는 중입니다. . 초기 개발 단계에서 djangos 자체 개발 서버를 사용하는 것은 문제가되지 않았습니다. apache debian/2.2.9와 mod_wsgi 3.3을 사용한 배포 후에 심각한 문제가 발생합니다.배포 후 django에서 scipy.stats.stats 사용

브라우저에서로드하려고하는 모든보기가로드를 시작하고 5 분 (제한 시간까지) 동안 500 페이지가 계속 표시됩니다. scipy를 가져 오면 작동하지만 이 아닌은 scipy.stats.stats 또는 scipy.stats를 사용할 수있게합니다. 이것은 놀라운 일이 아닙니다. scipy의 init .py에있는 설명서에서 서브 패키지 stats을 명시 적으로 가져와야한다고 명시되어 있습니다. 그러나 django (django 쉘의 )에서 가져 오는 서브 패키지 cluster에 대해서도 마찬가지입니다. dir(scipy)에 실제로 나타나는데, 은 ipython (0.10)에서이 아닙니다. .2) - 세션, 어디 그냥 나타나지 않는, 나는 다소 기대했다.

dir(scipy); 보통 ipython 셸 (564 문자열, 하위 패키지가 없음 cluster)의 웹 (하위 패키지 cluster을 포함하여 568 개의 문자열 목록)에서 오는 결과와 django 쉘에서 놀라운 결과를 반환합니다. django shell scipy에는 clusterstats 패키지를 포함하여 570 개의 속성이 있습니다.

ovl 패키지를 계속 가져 오면 scipy.stats 가져 오기를 약간의 거리 (앱 자체 파일 중 하나가 아님)에서 유지하면서 가끔 ViewDoesNotExist 오류가 발생합니다. 뷰 모듈에 메서드 인덱스가없는 반면 명백히 뷰 모듈에는 메서드 인덱스가 없습니다. 어떤 생각 나는 this.

그래서 지금은이 오히려 추한 솔루션을 생각 해요 :

    이 디렉토리 (scipy)에서 '보통'표시와 scipy.stats와 I를 통해 액세스 할 수 있도록 통계 패키지를 가져올
  • 편집 scipy의 init 이전 코드를 사용할 수 있습니다.
  • scipy의 합계 서브 패키지를 소매치기하고 있지만, 나는이 솔루션을 적용 꺼려 해요

(아마도 심볼릭 링크를 사용하여) 그것의 일반 패키지를 만드는. 사실 클러스터는 장고 환경에서 scipy에 나타납니다 조금 나를 걱정. 나는 이것이 웹에서 로그인 할 때 www- 데이터 사용자가되는 것과 관련이 있다고 생각했지만 그 방법을 확인하는 방법을 모른다.

다른 사람이이 문제가 발생 했습니까? 이 부분들? 또는 다른 유용한 의견이 있으십니까?

오, 또 다른 장고 배포판 입니다.

답변

5

mod_python은 동일한 프로세스에서 여러 개의 Python 인터프리터를 사용해 보는 데 사용됩니다. mod_wsgi도 똑같이 할 수 있습니다. 이 기능은 자주 정상적으로 작동하지만 일부 확장 모듈에서는이 기능을 지원하지 않습니다. scipy.stats는 아마도 그러한 확장 모듈을 가져올 것입니다. 우리는 scipy 메일 링리스트에서 mod_python 하에서 scipy.stats에 관한 유사한 보고서를 가지고있다. mod_wsgi 문서에서 동일한 프로세스에서 다중 인터프리터를 사용하지 않도록 구성 할 수 있는지 확인하거나, 해당 프로세스에 대해 인터프리터를 하나씩 사용하는 다른 배포 전략을 찾으십시오.

+2

나는이 검색을 사용하여 [이 질문] (http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API)과 해결책 및 [설명] (http : // code.google.com/p/modwsgi/wiki/ApplicationIssues#Python_Simplified_GIL_State_API). '<디렉토리/usr/지방/www /에서 WSGI-스크립트> \t WSGIApplicationGroup의 % {GLOBAL} \t 주문 허용 넣어 그것을 해결, \t 내 httpd.conf 파일에있는 모든 \t '에서 허용을 거부합니다. 두 번째 줄은 하위 해석기에 대한 작업을 수행하는 줄입니다. – koekiezorro

1

내 django 응용 프로그램에서 scipy.stats를 사용할 때도이 문제가 발생합니다. django manage.py runsever 환경에서 내 응용 프로그램이 아무 문제없이 올바르게 실행됩니다. 하지만 mod_python을 사용하여 아파치 서버에 앱을 배포하면 앱을 입력 할 수 없으며 브라우저는 시간이 초과 될 때까지로드를 유지합니다. 내 응용 프로그램에서 가져온 scipy.stats 문을 모두 제거한 후에는 문제가 해결되고 apache 서버에서 내 응용 프로그램을 실행할 수 있습니다.