Ошибка компиляции Python 2.7.3 на CentOS5

829
Honus Wagner

Я пытаюсь установить 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
Не уверен, важно это или нет, но ** svn ** - версия 1.7.4 на машине. Honus Wagner 11 лет назад 0
Я думаю, что это важно ... Я успешно установил Python 2.7.3 на другую коробку несколько месяцев назад без проблем и запустил ** svn ** версию 1.4.2. Honus Wagner 11 лет назад 0
Причина, по которой 3.3 компилируется без проблем, заключается в том, что этот источник, вероятно, никогда не находился под Subversion и вообще не пытается вызвать svnversion. Anthon 11 лет назад 0
http://stackoverflow.com/questions/27409037/python-2-7-6-error-when-building-from-source-gcc-orig-directory-no-such-file/27409535#27409535 Matthew Moisen 9 лет назад 0

2 ответа на вопрос

2
Anthon

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

svnversion . 

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

static const char svnversion[] = SVNVERSION; 

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

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

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

В каталоге Modules `svnversion .` возвращает` Unversioned directory`. Honus Wagner 11 лет назад 0
Кроме того, я нахожусь в корпоративной системе, и эти пути бина не доступны для редактирования. Я дважды проверил это. Honus Wagner 11 лет назад 0
Я добавил альтернативу редактирования файла getbuildinfo.c, я полагаю, вы можете отредактировать его, если сможете скомпилировать свой собственный Python Anthon 11 лет назад 0
0
Pratik Burman

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

Похожие вопросы