Как собрать 64-битный Python на OS X 10.6 - ТОЛЬКО 64-битный, нет всеобщей чепухи - PullRequest
6 голосов
/ 21 января 2010

Я просто хочу построить это на своей машине для разработки - двоичная установка из Python.org по-прежнему 32-битная, и установка расширений (например, MySQLdb) сводит меня с ума, пытаясь определить подходящие флаги для каждого и каждое расширение.

Пояснение: я НЕ заменил системный Python, я просто установил двоичный файл Python.org на его обычное место в / Library / ..., а не /System/Library/....

Похоже, что все остальное собирается по умолчанию 64-битной, а Python 2.6.1 по умолчанию был 64-битным (до того, как я заменил его на сборку Python.org, полагая, что это прямая замена) `

Я просто хочу 64-битную сборку, которая будет работать на моей машине без всяких затрачиваемых средств.

У кого-нибудь есть простой ответ?

Большое спасибо, ssteinerX@gmail.com

Ответы [ 4 ]

11 голосов
/ 21 января 2010

Если вы используете MacPorts , это так же просто, как указать вариант, который запрещает компилировать Universal, например:

sudo port install python26 -universal

Вы можете просмотреть доступные варианты, используя команду variants:

% port variants python26                                                        
python26 has the variants:
   darwin: Platform variant, selected automatically
   no_tkinter: Disable Tkinter support, which will break IDLE
   ucs4: Enable support for UCS4
   universal: Build for multiple architectures

Как видите, по умолчанию на 10.6 он строит вариант darwin, который строит ТОЛЬКО x86_64:

% cd /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/
% file python2.6
python2.6: Mach-O 64-bit executable x86_64

Сравнить с бинарным Python по умолчанию, который является универсальным:

% file /usr/bin/python
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64):      Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386):        Mach-O executable i386
/usr/bin/python (for architecture ppc7400):     Mach-O executable ppc

Если вы не используете MacPorts, я предлагаю вам рассмотреть это. Это экономит много времени и душевных страданий при ручной настройке и компиляции всего, а также есть отличный графический интерфейс под названием Porticus . Все бесплатно и с открытым исходным кодом, конечно!

p.s. Никогда заменять или переименовывать исходные системные файлы! Как предложено в комментариях Ned Daily:

"Либо управляйте доступом к намеченному экземпляр Python, изменив поиск порядок в переменной окружения PATH или, если необходимо, используйте абсолютный путь как /opt/local/bin/python2.6".

5 голосов
/ 14 июня 2010

Всегда macports ... Sheesh

Вот что я сделал:

~: wget http://python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
~: tar xjf Python-2.6.5.tar.bz2
~: cd Python-2.6.5
~: ./configure ./configure 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

Может быть немного излишним на FLAGS, но это сработало.

5 голосов
/ 21 января 2010

Самое простое решение - это тянуть все , что вам нужно от MacPorts:

$ sudo port selfupdate
$ sudo port install python26 +no_tkinter -universal py26-mysqldb -universal

Это установит python2.6, адаптер MySQLdb и необходимые клиентские библиотеки MySQL. Я предлагаю добавить вариант no_tkinter, если вам действительно не нужен tkinter; были некоторые проблемы с версией MacPorts Tk на 10.6.

РЕДАКТИРОВАТЬ: Обратите внимание, что MacPorts Python будет установлен как /opt/local/bin/python2.6. Возможно, вам придется настроить вашу оболочку $ PATH, чтобы убедиться, что в нее включены / opt / local / bin перед / usr / local / bin и / usr / bin Если вы хотите, чтобы / opt / local / bin / python ссылался на MacPorts python2.6, выполните приведенные выше действия и:

$ sudo port install python_select
$ sudo python_select python26
3 голосов
/ 14 июня 2010

Как только вы получите 64-битную настройку Python, используя методы, описанные выше, я также нашел этот пост в блоге Aaron Meurer полезным для проверки того, что Python фактически установлен как 64-битный. В посте также говорится о запуске 64-битного Python вместе с 32-битной установкой, что, я думаю, полезно для некоторых целей.

...