2010-01-27 1 views
2

django에 대한 소개 작업은 정말 쉽지만 재미있게 보입니다. 그러나이 작업은/opt/local에 설치된 Python 2.6에서 모두 수행했습니다. (RedHat 5.3) redhat과 함께 제공된 python은 2.4이기 때문에. 나는 심볼릭 링크를 설정했다.mod_python의 버전을 변경하려면 어떻게해야합니까?

/usr/bin/python2.6 -> /opt/local/bin/python 

나는 이것을 지금까지 모든 장고에 사용 해왔다. 즉

> python2.6 manage.py runserver 

내가 생산 모드로 이동하려고 할 때, mod_python을 파이썬의 올바른 버전 사용하지 않는 : 내/etc/httpd/conf 내에이이

Mod_python error: "PythonHandler django.core.handlers.modpython" 

Traceback (most recent call last): 

    File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 287, in HandlerDispatch 
    log=debug) 

    File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 461, in import_module 
    f, p, d = imp.find_module(parts[i], path) 

ImportError: No module named django 

를/httpd.conf :

<Location "/chat"> 
SetHandler python-program 
PythonHandler django.core.handlers.modpython 
SetEnv DJANGO_SETTINGS_MODULE chat.settings 
PythonDebug On 
PythonPath "['/www/django/chat', '/opt/local/lib/python2.6/site-packages/django/'] + sys.path" 
</Location> 

제 질문은 어떻게 mod_python을 파이썬 대신 python2.6으로 보이게할까요?

답변

5

python2.6 설치에 대해 mod_python을 다시 빌드해야합니다. mod_python이 파이썬을 라이브러리로로드하기 때문에 컴파일 타임에 버전이 고정됩니다.

+0

apxs가 RedHat 5.3에 있는지 알고 싶지 않으십니까? – Puddingfox

+1

@puddingfox 그것은/usr/sbin/apxs에있는 httpd-devel 패키지에 있습니다. –

3

더 이상 mod_python을 사용하지 마십시오. mod_wsgi는 장고 프로그램을 배포 할 때 권장되는 방법입니다.

+0

나는 현학적 일 것입니다. 네가 옳아. mod_wsgi가 권장되는 방법입니다. mod_python이 더 나은 옵션 일 수있는 몇 가지 상황이있을 수 있습니다. 첫째, 엔터프라이즈 리눅스 중 하나의 오래된 배포판이 있고 아파치가 정적으로 링크되어 있고 다시 컴파일 할 수있는 옵션이 없다면. yum repos에서 미리 컴파일 된 mod-python을 얻는 것이 더 쉬울 수도 있습니다. 파이썬과 아파치를 완전히 분리하고 속도가 중요하지 않다면 fastcgi를 사용할 수 있습니다. 그냥 말하는 것이 좋습니다 * 항상 * 항상 아닙니다. – Rokujolady

+0

이 명백하게 도움이되지 않는 대답은 제거해야하는 mod_python의 느린 설치가 있다는 것을 깨닫기 위해 내가 읽어야 할 것이 었습니다. – Ekevoo

2

libpython을 동적으로 링크하기 위해 mod_python을 다시 빌드하면 libpython에 대한 버전 업데이트를 선택할 수 있지만 약간의 격조가 있습니다.

다음과 같이 mod_python을위한 구성 스크립트를 편집해야합니다 (제거 -L $ {PyLIBPL}) :

$ diff configure.orig configure 
< LDFLAGS="${LDFLAGS} -L${PyLIBPL}" 
--- 
> LDFLAGS="${LDFLAGS}" 

그리고 할

구성 --with-파이썬 =/경로 /로/bin/python; 하다; 무용을 설치하십시오.

당신은 실행하면 :

LDD mod_python.so

당신이 보이는 라인을 볼 수

같은 :

libpython2.6.so.1.0 => /usr/lib/libpython2.6 .so.1.0