2012-07-04 3 views
3

내가이 문제에 봉착 실패했습니다오류 : 명령 RC = 65536 파이썬과 mod_wsgi에

내가 python2.7를 얻을 수 pythonbrew을들이받은거야, 그리고 그래서는 2.7 파이썬을 사용 mod_wsgi에를 컴파일 다시. 이를 위해

, 난이 튜토리얼 따라 - 내가 얻을 tar.gz 파일이

code.google.com/p/modwsgi/wiki/QuickInstallationGuide 파일을 다운로드 관여

을 - 다음

./configure --with-python=/home/bharal/.pythonbrew/pythons/Python-2.7.2/bin/python --enable-shared 지금 내가이 내 파이썬에 대한 부착 할 수있는 권리 곳입니다 있으리라 믿고있어 함께 "를 구성"- 값을 - 파이썬은 위에서 나는 which python

OK를 얻으려면, 그 반응 때문이다! 이제 문제가 생겼습니다. 내가 위의 구성을 실행 한 후, 나는 make을 실행하고 내가 얻을 :

/usr/include/features.h:160:1: warning: this is the location of the previous definition 
/usr/share/apr-1.0/build/libtool --silent --mode=link --tag=disable-static x86_64-linux-gnu-gcc -o mod_wsgi.la -rpath /usr/lib/apache2/modules -module -avoid-version mod_wsgi.lo -L/home/aiyer /.pythonbrew/pythons/Python-2.7.2/lib -L/home/aiyer/.pythonbrew/pythons/Python-2.7.2/lib /python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm 
/usr/bin/ld: /home/bharal/.pythonbrew/pythons/Python-2.7.2/lib/libpython2.7.a(abstract.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC 
/home/aiyer/.pythonbrew/pythons/Python-2.7.2/lib/libpython2.7.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
apxs:Error: Command failed with rc=65536 

그리고 내가 무엇을 할 생각이 없다.

https://stackoverflow.com/a/6118155/1061426

하지만이 모든 훨씬 나에게 도움이되지 않습니다 - 그것은 내가 일련의 단계를 말할 수 있지만 더 재미있는 재미있는 이야기가 생각만큼 멀지 않은 : 나는이 대답을 가로 질러 온 것은 SO입니다 .

import sys 
print maxint 

경우 64 비트 ==> 9223372036854775807 경우 32 비트 ==> 2147483647

좋아, 그래서 난 해요 토트 :

나는 내가 파이썬 64 비트가 있는지 확인하려면이 명령을 실행 더 큰 번호를 얻기 때문에 64 비트를 실행합니다. 그래서 내가 여기 DOCO을 읽어

This error is believed to be result of the version of Python being used having been originally compiled for the generic X86 32 bit architecture whereas mod_wsgi is being compiled for X86 64 bit architecture. The actual error arises in this case because 'libtool' would appear to be unable to generate a dynamically loadable module for the X86 64 bit architecture from a X86 32 bit static library.

아니라 : 내가 64 비트 파이썬을 실행 해요

http://code.google.com/p/modwsgi/wiki/InstallationIssues#Mixing_32_Bit_And_64_Bit_Packages

때문에, 내 문제는이 아니라고을 의미 않음 이?

Alternatively, the problem is due to 'libtool' on this platform not being able to create a loadable module from a X86 64 bit static library in all cases.

(위의 링크에서 위의 인용)

이런 경우라면, 도대체 내가해야합니까

? 나는 에서 무엇을 할 것인가에 관해 가장 안달 한 생각을 가지고 있지 않다. 시나리오 - 그리고 그 페이지의 나머지 부분을 읽었지 만 그리스어로 쓰여졌을 수도있다.

제안 사항?

업데이트 : 나는 결코 이것을 고치지 않고 내 우분투와 함께 python을 사용하여 끝났다 - 내 코드의 관점에서 실행과 차이가 없다.

답변

5

문서는 말한다 :

If the first issue, the only solution to this problem is to recompile Python for the X86 64 bit architecture. When doing this, it is preferable, and may actually be necessary, to ensure that the '--enable-shared' option is provided to the 'configure' script for Python when it is being compiled and installed.

을 그래서, 당신은 '이전에 실행에 파이썬의'구성 '명령에 공급되는'--enable-공유 '옵션을 확보, 소스 코드에서 파이썬을 다시 설치해야 하다'.

'pythonbrew'가 그렇게 할 수 없다면 pythonbrew 사람들에게 공유 라이브러리 지원을 사용하여 Python 버전을 빌드하는 방법이 틀림없이 깨져서 많은 임베디드 시스템이 실행되지 못하도록합니다.

+0

? 그러나 왜 우리는 첫 번째 해결책이 문제라고 가정하고 있습니까? 내가 가지고있는 비단뱀은 * 64 비트입니다. 그것이 의미하는 것이 아닙니까? 내 말은, 그것은 64 비트 정수를 처리 할 수 ​​있기 때문에 테스트 결과입니다. 틀림없이 나는 여기 깊이 내리고있다. 그러나 나는 그것이 두 번째 (똑같이 불변의) prolbme라고 생각하고 있었다? – bharal

+0

64 비트로 컴파일되는 것이 문제가 아닙니다. 이는 Python 설치가 Python 용 공유 라이브러리를 설치하지 않고 정적 라이브러리 만 설치하기 때문입니다. libpython2.7.so 또는 libpython2.7.a 만 있습니까? –

+0

오, 글쎄, 난 이걸 고치지 않았고 내 우분투와 함께 파이썬을 사용하여 끝났다 - 내 코드의 관점에서 실행 차이가 없습니다. 나는 당신을 +1했고, 누군가가 당신이 제안하는 것을 수행 할 단계 나 무언가를 가지고있는 경우에 대비하여 공개 할 것입니다! – bharal

0

Fedora 19 64bit에서이 문제를 직접 경험 한 결과, mod_wsgi가 Python-devel 및 httpd-devel 패키지를 모두 설치 한 경우 소스에서 컴파일되고 설치된다는 것을 알았습니다.

그러나 나는 pythonbrew를 사용하지 않습니다.