Помилка компіляції Python 2.7.3 на CentOS5


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 там, так що я все ще шукаю допомоги.


Не впевнений, що це важливо чи ні, але svn на машині є версія 1.7.4.
Honus Wagner

Я думаю, що це важливо ... Я встановив Python 2.7.3 успішно на іншому вікні кілька місяців тому без проблем і його роботи svn версія 1.4.2.
Honus Wagner

Причина 3.3 компілювання без проблем полягає в тому, що цей джерело, ймовірно, ніколи не було в Subversion і не намагається викликати svnversion взагалі.
Anthon

Відповіді:


2

Ти повинен cd до каталогу модулів і подивіться на вихід

svnversion .

на моїй системі, з моєю svn версією (1.6.17) він просто говорить exported до stdout. Цей висновок встановлює SVNVERSION, як якщо б він був з #define в C код і фактично використовується для визначення масиву символів. Якщо там є сміття, яке викине помилку.

static const char svnversion[] = SVNVERSION;

Я пропоную вам просто перейменувати команду svnversion тимчасово під час компіляції. Або якщо це не спрацює, відредагуйте функцію _PY_svnversion в Modules/getbuildinfo.c до:

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

Було б цікаво побачити, що насправді повертає вашу систему.


У каталозі Модулі, svnversion . повертається Unversioned directory.
Honus Wagner

Крім того, я працюю в корпоративній системі, і ці шляхи не можна редагувати. Я ще раз перевірив це.
Honus Wagner

Я додав альтернативу редагування файлу getbuildinfo.c, я припускаю, що ви можете редагувати це, якщо ви можете скомпілювати свій власний Python
Anthon

0

Я перейменував svnversion (як було запропоновано) після знаходження його за допомогою 'who svnversion' і потім знову запустив 'make' на Python3.0 і він працював.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.