2

Я пытаюсь установить 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 ответа2

2

Вы должны cd - диск в каталог модулей и посмотреть на выходе

svnversion .

в моей системе, с моей версией SVN (1.6.17), он просто говорит, что exported в стандартный вывод. Этот вывод устанавливает SVNVERSION, как если бы он был с #define в коде C и фактически использовался для определения массива char. Если там есть мусор, это вызовет ошибку.

static const char svnversion[] = SVNVERSION;

Я предлагаю вам просто временно переименовать команду svnversion во время компиляции. Или, если это не сработает, отредактируйте функцию _PY_svnversion в Modules/getbuildinfo.c по адресу :

const char *
_Py_svnversion(void)
{                         
    return "Unversioned directory";
}

Было бы интересно посмотреть, что на самом деле возвращает svnversion в вашей системе.

0

Я переименовал svnversion (как было предложено) после того, как нашел его с помощью 'which svnversion', а затем снова запустил 'make' на Python3.0, и это сработало.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .