Невозможно установить 32-битный Python с помощью pyenv, несмотря на установленные соответствующие флаги

Я хочу установить 2.6.6 Python как 32-разрядную с pyenv в OS X, но получаю:

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Несмотря на то, что вы ознакомились с общими проблемами сборки и применили предложенные там флаги, как а также при установке инструментов разработчика Xcode проблема сохраняется. Вот полная команда:

CFLAGS="-I$(xcrun --show-sdk-path)/usr/include -arch i386 -I$(brew --prefix openssl)/include" LDFLAGS="-arch i386 -L$(brew --prefix openssl)/lib" CONFIGURE_OPTS="--with-arch=i386" pyenv install 2.6.6

... но это создает 64-битную сборку, которая мне не нужна.

Как ни странно, сборка работает, когда пробуется только следующее:

CFLAGS="-I$(brew --prefix openssl)/include" LDFLAGS="-L$(brew --prefix openssl)/lib" pyenv install 2.6.6

Что нам не хватает? Означает ли следующее из журнала, что мне нужен openssl, созданный для i386/32-bit?

ld: warning: ignoring file /usr/local/opt/openssl/lib/libcrypto.dylib, file   
was built for x86_64 which is not the architecture being linked (i386):   
/usr/local/opt/openssl/lib/libcrypto.dylibld: warning: 
ignoring file /usr/local/opt/openssl/lib/libssl.dylib, file was built for 
x86_64 which is not the architecture being linked (i386): 
/usr/local/opt/openssl/lib/libssl.dylib

person Pyderman    schedule 16.01.2016    source источник
comment
Сообщение об ошибке говорит именно об этом. Зачем вам 32-битная версия Python?   -  person Martin Konecny    schedule 17.01.2016
comment
Долгая история, которая не имеет отношения к делу, но, если вы должны знать, это позволяет использовать очень старый wxPython, который работает только на 32-разрядных версиях.   -  person Pyderman    schedule 17.01.2016
comment
Попробуйте создать 32-разрядную версию, следуя этим инструкциям: foodpicky.com/?p=99. Похоже, что ключ использует darwin-i386-cc при построении.   -  person Martin Konecny    schedule 17.01.2016
comment
В ПОРЯДКЕ. Будет ли это достигать того же, что предлагается здесь: stackoverflow.com/a/4089574/1389110? И затем, какой бы метод я ни использовал, как мне убедиться, что процесс сборки pyenv использует только что созданную 32-разрядную установку, а не мою установку brew, которую он, кажется, делает в настоящее время?   -  person Pyderman    schedule 17.01.2016
comment
Когда вы закончите сборку, у вас будет двоичный файл python где-то в вашем каталоге сборки. Вам просто нужно указать pyenv на это. И да, эти инструкции выглядят хорошо.   -  person Martin Konecny    schedule 17.01.2016
comment
Поэтому я построил с использованием подхода Неда Дейли, в результате чего получился файл /tmp/openssl-1.0.0a. Затем я предположил, что если я создам следующую символическую ссылку: sudo ln -s /tmp/openssl-1.0.0a /usr/local/opt/openssl, то сборка подхватит этот 32-битный openssl, но он продолжает предупреждать о: warning: ignoring file /usr/local/opt/openssl/lib/libcrypto.dylib, поэтому я предполагаю, что что-то не так.   -  person Pyderman    schedule 17.01.2016
comment
Замените -L$(brew --prefix openssl)/lib" на -L/tmp/openssl-1.0.0a/lib" Сначала убедитесь, что путь существует (lib может находиться в более глубоком подкаталоге).   -  person Martin Konecny    schedule 17.01.2016
comment
Сделайте это и для -I$(brew --prefix openssl)/include.   -  person Martin Konecny    schedule 17.01.2016