2010-09-29 3 views
0

Я бы хотел установить Python 2.5.5 для использования с приложениями Google, но у вас было очень трудное отслеживание инструкций о том, как это сделать. Я думаю, что следующее могло бы работать, но было интересно, если кто-нибудь успешно его построил?Компиляция Python 2.5.5 на OS X 10.6

./configure --prefix=/usr/local/python2.5.5 MACOSX_DEPLOYMENT_TARGET=10.6 --enable-framework --with-universal-archs="64-bit" CFLAGS="-arch x86_64" LDFLAGS="-arch x86_64" 

~: make -j6 

~: sudo make install 

Любая помощь приветствуется!

+3

Прежде всего: почему вы хотите вручную создать Python? OS X 10.6 включает в себя как Python 2.5 и 2.6, так и официальные сборки OS X, доступные с http://python.org в форме диска. – Philipp

ответ

0

Python 2.5 не корректно формируется из коробки на Mac OS X 10.6. (Однако он строит ОК , как и, по 10.5 или 10.4.) Существует по крайней мере одно исправление конфигурации, которое должно быть передано из более поздних Pythons. И вам нужно использовать gcc-4.0, а не -4.2.После того, как вы извлекли источник:

cd ./Python-2.5.5/ 
cat >patch-configure-for-10-6.patch <<EOF 
--- configure.O 2008-12-13 06:13:52.000000000 -0800 
+++ configure 2010-09-29 10:16:05.000000000 -0700 
@@ -2039,7 +2039,11 @@ 
    # disables platform specific features beyond repair. 
    # On Mac OS X 10.3, defining _POSIX_C_SOURCE or _XOPEN_SOURCE 
    # has no effect, don't bother defining them 
- FreeBSD/4.* | Darwin/[6789].*) 
+ FreeBSD/4.*) 
+ define_xopen_source=no;; 
+ Darwin/[6789].*) 
+ define_xopen_source=no;; 
+ Darwin/1[0-9].*) 
    define_xopen_source=no;; 
    # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but 
    # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined 
EOF 
patch < patch-configure-for-10-6.patch 
export CC=/usr/bin/gcc-4.0 
./configure --prefix=/usr/local --enable-framework MACOSX_DEPLOYMENT_TARGET=10.6 
make 
sudo make install 

Тогда существуют различные менее очевидные проблемы сборки, как сторонние библиотеки, которые необходимы для всех стандартных модулей библиотеки для создания и работы, как и ожидалось - GNU Readline и bsddb приходят ум - поэтому нет никакой гарантии, что вы не столкнетесь с другими проблемами.

$ python2.5 
Python 2.5.5 (r255:77872, Sep 29 2010, 10:23:54) 
[GCC 4.0.1 (Apple Inc. build 5494)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Module readline not available. 
>>> 

Вы можете попробовать использовать сценарий сборки установки в исходном дереве (в Mac/BuildScript/), но это, скорее всего, нужно будет исправлен корректно работать на 10.6.

Несмотря на то, что официальный установщик python.org для версии 2.5.5 (который имеет исправления безопасности) отсутствует, есть OS X installer for 2.5.4, который отлично работает на 10.6. Или используйте поставляемый Apple 2.5.4. Или попробуйте MacPorts. Хорошо, когда GAE поддерживается в текущих версиях Python.

1

Вы должны установить его через MacPorts, что делает этот кусок пирога. После того, как вы установили его ...

$ sudo port install python25 
+0

Mac Ports сделать это очень просто Мне было просто любопытно, если кто-то успешно его компилировал. – wonbyte

1

Вы должны установить его с помощью Fink, что делает этот кусок пирога. После того, как вы его установили ...

$ fink install python25 

Fink имеет больше пакетов, чем MacPorts.

+1

Fink также имеет то преимущество, что работает. – asmeurer

0

Предполагая, что вы работаете в ОС 10.6, В терминале, если вы наберете

% python<tab> 

Терминал должен показать вам все python* элементов на PATH. Как было предложено @philipp, Python 2.5 и Python 2.6 установлены по умолчанию. Вы можете увидеть в списке:

python2.5 
python2.6 

Вы также увидите запись, которая просто python. Это тот, который будет использоваться по умолчанию при вызове команды python в командной строке. Чтобы увидеть версию этой версии по умолчанию, запустите ее, введя python в командной строке и обратите внимание на текст, распечатанный при запуске, или выполните which python, чтобы увидеть абсолютный путь для этого исполняемого файла.

Исполняемые в PATH на OS X управляются ссылки, так, чтобы увидеть фактическое местонахождение

ls -lha `which python` 
ls -lha `which python2.5` 
ls -lha `which python2.6` 

Обратите внимание на backtics заставит команду which для запуска и вставить результат в команду ls.

Наконец, вы можете выбрать версию Python, которая по умолчанию используется командой python_select. У меня нет большого опыта в этом, так как я обычно управляю своим доступом к Python через свои собственные софт-ссылки или псевдонимы оболочки.

Что все сказано, если вы собираетесь устанавливать много пакетов для целей разработки, дайте совет @Dave Pirotte. Используя MacPorts или fink, вы получите новую установку Python (и любых дополнительных пакетов, которые вам нужны) вне системы установки Python. Это может быть удобно, если вам нужно внести много изменений, и если вы будете сильно усердны в отношении настройки вашей установки на Python, вам проще будет очистить шифер и начать все сначала, если вы не испортите систему по умолчанию Python ,

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