Как построить 64-разрядный Python на OS X 10.6 - только 64 бит, нет универсального нонсенса

голоса
6

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

Разъяснение: Я не заменить систему Python, я только что установил двоичный Python.org в свое нормальное место в / Library / ... нет / System / Library / ....

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

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

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

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

Задан 21/01/2010 в 16:19
источник пользователем
На других языках...                            


4 ответов

голоса
11

Если вам случится использовать 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

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

% 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 . Все бесплатно и с открытым исходным кодом, конечно!

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

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

Ответил 21/01/2010 в 16:36
источник пользователем

голоса
5

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

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

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

EDIT: Обратите внимание, то MacPorts Python будет установлен в качестве /opt/local/bin/python2.6. Вы , возможно , потребуется настроить оболочки $ PATH , чтобы обеспечить / Opt / местные / бен на ней перед / USR / местные / бен и / USR / бен. Если вы хотите / Opt / местные / бен / питон обратиться к python2.6 MacPorts, сделать выше , а также :

$ sudo port install python_select
$ sudo python_select python26
Ответил 21/01/2010 в 18:21
источник пользователем

голоса
3

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

Ответил 13/06/2010 в 20:03
источник пользователем

голоса
5

Всегда 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, но он работал.

Ответил 13/06/2010 в 20:09
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more