Ошибка компиляции Python 2.7.3 на CentOS5
Я пытаюсь установить Python 2.7.3 на мою машину CentOS 5.50. Скачать, распаковать, настроить (с --prefix=/usr/local
) в порядке. Это make
который выдает эту ошибку:
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -DPy_BUILD_CORE \
-DSVNVERSION="\"`LC_ALL=C svnversion .`\"" \
-DHGVERSION="\"`LC_ALL=C `\"" \
-DHGTAG="\"`LC_ALL=C `\"" \
-DHGBRANCH="\"`LC_ALL=C `\"" \
-o Modules/getbuildinfo.o ./Modules/getbuildinfo.c
gcc.orig: directory": No such file or directory
./Modules/getbuildinfo.c: In function '_Py_svnversion':
./Modules/getbuildinfo.c:63: error: missing terminating " character
./Modules/getbuildinfo.c:63: error: expected expression before ';' token
make-3.79.1-p7: *** [Modules/getbuildinfo.o] Error 1
В течение нескольких дней я рыскал в сети, пытаясь решить эту проблему самостоятельно, но я оказался пустым. Одно предложение, с которым я столкнулся, касалось установки "Инструментов разработчика" в системе, которые, я считаю, установлены правильно, но я не уверен на 100%.
Если у кого-то есть информация по этому вопросу, я был бы признателен за помощь.
Благодарю.
ОБНОВИТЬ:
Я скомпилировал и установил Python 3.3 без проблем. Проблема определенно связана с SVN. Несмотря на то, что пакеты, которые я использую, поддерживаются в Python 3.3, я все же хотел бы получить там 2.7.3, так что я все еще ищу помощь.
2 ответа
Вам следует cd
в каталог модулей и посмотрите на вывод
svnversion .
в моей системе, с моей версией SVN (1.6.17) это просто говорит exported
на стандартный вывод Этот вывод устанавливает SVNVERSION, как если бы он был с #define
в C
код и фактически используется для определения массива символов. Если там есть мусор, это вызовет ошибку.
static const char svnversion[] = SVNVERSION;
Я предлагаю вам просто временно переименовать команду svnversion во время компиляции. Или, если это не сработает, отредактируйте функцию _PY_svnversion
в Modules/getbuildinfo.c
чтобы:
const char *
_Py_svnversion(void)
{
return "Unversioned directory";
}
Было бы интересно посмотреть, что на самом деле возвращает svnversion в вашей системе.
Я переименовал svnversion (как было предложено) после того, как нашел его с помощью 'which svnversion', а затем снова запустил 'make' на Python3.0, и это сработало.