2012-07-04 3 views
3

я имею эту проблему:Ошибка: Не удалось выполнить команду RC = 65536 питона и mod_wsgi

Я подножка pythonbrew получить python2.7, и поэтому я вновь скомпилированные mod_wsgi использовать 2.7 питона.

с этой целью, я следовал этот учебник:

code.google.com/p/modwsgi/wiki/QuickInstallationGuide

который участвует загрузки файла - есть tar.gz файл я получаю - а затем «его настройки» с ./configure --with-python=/home/bharal/.pythonbrew/pythons/Python-2.7.2/bin/python --enable-shared

теперь я предполагаю, что это правильное место, чтобы прикрепить мой питон - значение для с-питон выше только ответ я получаю к which python

OK! Итак, теперь проблема. После того, как я бегу Configure выше, я бегу 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

, но это не помогает мне ничего больше - это не так далеко, как я могу сказать, ряд шагов, но более интересный лакомый думать о том, ,

Я выполнил эту команду, чтобы проверить, если у меня есть Python 64 бит:

import sys 
print maxint 

если 64 бит ==> 9223372036854775807 , если 32 бит ==> 2147483647

нормально, поэтому я тотализаторов работает 64 бит, потому что я получаю большее число. Так я прочитал эту DOCO здесь:

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

потому я бегу 64 битную питона, значит ли это значит, что моя проблема не в этом:

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.

а это?

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, с которым пришел мой ubuntu - не было никакой разницы в работе с точкой зрения моего кода.

ответ

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.

Итак, вам нужно переустановить Python из исходного кода, обеспечивая возможность «--enable-общий» подается в команду «Настройка» для Python перед запуском " делать'.

Если «pythonbrew» не позволяет вам это сделать, сообщите людям, живущим на питонном языке, о том, что способ создания их версии Python с поддержкой общей библиотеки, возможно, сломан и предотвратит провал многих встроенных систем.

+0

? но почему мы предполагаем, что первым решением является проблема? У python у меня * есть * 64 бит, не так ли это? Я имею в виду, что он может обрабатывать 64-битные целые числа - следовательно, тест, который я показал. По общему признанию, я в полной мере чувствую себя здесь, но я думал, что это второй (в равной степени неразрешимый) прольмме? – bharal

+0

Не скомпилировано 64 бита. Это связано с тем, что установка Python не устанавливает разделяемую библиотеку для Python и устанавливает только статическую библиотеку. У вас есть libpython2.7.so или только libpython2.7.a? –

+0

О, хорошо, я никогда не исправлял это и заканчивал тем, что использовал python, с которым мой ubuntu пришел - без различия с точки зрения моего кода. Я сделал +1, и останусь открытым, если у кого-то есть шаги или что-то делать, что вы предлагаете! – bharal

0

Получив эту проблему самостоятельно с Fedora 19 64bit, я обнаружил, что mod_wsgi будет скомпилировать и установить из исходного кода, если я установил пакеты Python-devel и httpd-devel.

Однако я не использую pythonbrew.

Смежные вопросы