2013-07-03 2 views
0

에서 mod_wsgi에 설치할 수 없습니다 modwisgi-3.4 나는 make 동안 다음 오류가 발생했습니다 : mod_wsgi.c:142:20: error: Python.h: No such file or directory http://code.google.com/p/modwsgi/wiki/InstallationIssues는 "파이썬은 당신이 가지고있는 파이썬 런타임 패키지에 대응하기위한 개발자 패키지를 설치하기 위해 제안하는 공식 문제 해결 페이지 설치된 ".설치하는 중에 소스

어떻게 소스에서 위에서 언급 한 개발 패키지를 설치합니까? Linux에서 httpd-2.2.24 및 modwisgi 3.4로 python2.7.4를 실행하고 있습니다.

+0

배포판 파이썬 개발 패키지가 필요합니다. Redhat (Fedora/CentOS) 또는 Debian 기반 (Ubuntu/Mint) 시스템입니까? – tMC

+0

그것은 Redhat 기반입니다. –

+1

'yum install python-devel' – tMC

답변

1

실행 다음 당신은 아마 또한 python-config --ldflags를 실행할 수 있습니다

$ python-config --cflags 
-I/usr/include/python3.3m -I/usr/include/python3.3m -Wno-unused-result -DDYNAMIC_ANNOTATIONS_ENABLED= 
1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-pr 
otector --param=ssp-buffer-size=4 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ss 
p-buffer-size=4 

:

$ python-config --cflags 

이것은 Python.h을 찾기 위해 컴파일러에 전달하는 당신에게 플래그의 목록을 제공합니다 필요한 링커 플래그.

파이썬 설치의 여러 버전이있는 경우, 지정할 수있는, 즉, python2.7-config

그럼, 수동으로 다음이 포함되도록 파일 posix-ap2X.mk.in을 편집합니다 :

CFLAGS = @[email protected] $(shell python-config --cflags) 
LDFLAGS = @[email protected] $(shell python-config --ldflags) 

configure.ac Autoconf에 파일은이 물건을 찾아 내려고 시도하지만 분명히 당신을 위해 작동하지 않는 clunky 방식으로하는 것처럼 보입니다. 그래서이 수동 방법은 잘하면 물건을 정렬합니다.

편집 : 아, 또한 올바른 을 사용하고 필요한 경우 사용할 파이썬 인터프리터를 지정했는지 확인하십시오. 예를 들어, 평소에 다른 버전이 설치되어있는 동안 소스에서 일부 비표준 위치로 파이썬을 설치했다면 위의 편집에서 /path/to/my/python-config을 사용하고 PYTHON=/path/to/my/pythonconfigure 스크립트로 전달하십시오. . 실제로 올바른 파이썬 인터프리터를 지정하면 포함 된 configure 스크립트가 제대로 작동하지 않을 수 있습니다.

+0

mod_wsgi configure 스크립트가이 모든 작업을 수행합니다. 직접 할 필요는 없습니다. –

+0

예, 필자는 결국'configure.ac'를 통해 더 읽을 것이고, 따라서 마지막 편집을 알게되었습니다. BTW, 내가 이해하기로는,'--with-python' 플래그를 사용하는 대신 PYTHON 변수를 통해 파이썬 인터프리터 위치를 지정하는 것이 표준이다. 또한 유용한 Python Autoconf 매크로 (GNU pyconfigure)를 체크 아웃하는 것을 추천합니다 (면책 조항 : 필자는 pyconfigure 관리자입니다. 질문을 혼란스럽게하지 않기 위해이 토론을 계속하기 위해 저에게 직접 연락하십시오). –

+0

Apache configure 스크립트는 --with를 사용하여 Apache에서 사용할 패키지의 위치를 ​​나타냅니다. 스크립트는 해당 규칙을 따릅니다. 그래서 그것이 그렇게 된 이유의 역사입니다. –

0

mod_wsgi configure에 --with-python 옵션을 사용하여 소스 코드에서 설치 한 'python'바이너리의 경로를 지정해야합니다. 아직까지는 해당 dev 패키지가 설치되어 있지 않은 시스템 Python을 사용하고있는 것 같습니다. 실제 'configure'스크립트 명령 행에 대한 세부 정보를 제공하고 실행했을 때 스스로 설치 한 Python이 실제로 어디에 있는지 알려줍니다. 또한 'distclean'을 실행하여 혼란스러운 경우에 대비하여 오래된 빌드의 결과를 지워야합니다.

+0

안녕 그레이엄, 나는 구성에 대해 다음 명령을했다 : 당신이 './configure를 --prefix = custom_modwsgi_location --with-apxs를 = apxs_path_of_custom_apache --with-파이썬 = custom_python_path --libdir = lib_path_prefix_used_for_apache' –

+0

공급 실제 경로입니다 --with-python을 사용합니다. 나는 당신이 올바른 것을 지적하고 있는지 확인하고 싶습니다. 그렇지 않으면 시스템 파이썬으로 대체 될 것입니다. –

+0

configure 명령 : ** 아파치 ** : './configure --with-included-apr --prefix = $ MY_APPS/httpd27 --libdir = $ MY_APPS/lib27 --enable-ssl - 사용 가능 -mods-shared = all --with-mpm = worker' ** modwsgi ** : './configure --prefix = $ MY_APPS/modwsgi27 --with-apxs = $ MY_APPS/httpd27/bin/apxs - -with-python = $ MY_APPS/python2.7/bin/python --libdir = $ MY_APPS/lib27' –

관련 문제