Как связать последнюю версию openssl?
Это возможно только при компиляции Python из исходного кода;расположение заголовков и библиотек OpenSSL для компиляции с / link устанавливается через CPPFLAGS
/ LDFLAGS
/ LD_LIBRARY_PATH
переменных среды, как описано здесь .Вы не можете «перекомпоновать» код после его компиляции.
Другая проблема заключается в том, что вы не сможете изменить системный Python в MacOS без какой-либо опасной модификации системы.Python, предустановленный MacOS, находится в /System/Library/Frameworks/Python.framework
, и вы не можете изменить или удалить что-либо в /System
без отключения защиты целостности системы (я настоятельно советую не делать этого в любом случае).
Таким образом, предлагаемое решение - оставить систему Python как есть и установить другую копию для собственного использования.В MacOS у вас обычно есть два варианта: либо использовать Homebrew, который предлагает последние версии Python 2 и 3, либо использовать официальные установщики .pkg
из https://www.python.org/downloads/. Оба были построены на основе OpenSSL последней версии.Что выбрать, зависит от вашего варианта использования;лично я не использую сваренный Python, потому что он не предлагает несколько версий пакета Python 3 (например, мне нужно установить 3.5 / 3.6 / 3.7 одновременно для запуска тестов).Основным недостатком установщиков .pkg
является то, что установленный Python устанавливается вне любого менеджера пакетов и не будет обновляться автоматически, поэтому вы несете ответственность за его обновление самостоятельно.В худшем случае это означает загрузку нового установщика и переустановку даже при незначительном повышении версии.
После установки настройте переменную PATH
для своего пользователя, чтобы вновь установленный Python предшествовал системному.Для сваренного Python откройте ~/.bash_profile
и добавьте
BREW_PREFIX=$(brew --prefix)
PATH="$BREW_PREFIX/bin:$BREW_PREFIX/sbin:$PATH"
export PATH
Для Python, установленного через официальный установщик .pkg
: профиль должен автоматически изменяться при установке;тем не менее, это не мешает перепроверить.Откройте ~/.bash_profile
и проверьте, присутствуют ли строки, подобные
# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH
;если нет, добавьте их для установленной версии Python.