Компиляция Python 3.7 на Ubuntu 14.04 с pyenv - PullRequest
0 голосов
/ 09 января 2020

Компиляция Python 3.7 и выше в Ubuntu 14.04 не работает "из коробки". Это связано с тем, что Ubuntu 14.04 базируется на OpenSSL 1.0.1, а Python 3.7 требует OpenSSL 1.0.2 и выше.

Какое наилучшее решение не включает сторонние PPA?

1 Ответ

2 голосов
/ 09 января 2020

Я не видел ни одного окончательного решения, поэтому решил написать одно при компиляции из исходного кода, не затрагивая остальную систему.

Вам нужно выполнить два шага, один - создать собственную версию OpenSSL и второй инструктирует pyenv использовать его.

Чтобы установить OpenSSL, выполните следующие команды.

mkdir openssl 
cd openssl 
wget https://www.openssl.org/source/openssl-1.0.2u.tar.gz 
tar -xzvf openssl-1.0.2u.tar.gz 
cd openssl-1.0.2u 
./config --prefix=$HOME/openssl --openssldir=$HOME/openssl shared zlib 
make 
make install

Это установит последнюю версию на OpenSSL 1.0.2 (больше не будет выпущено исправлений) в ваш домашний каталог. Теперь для установки Python 3.7 с помощью pyenv.

После настройки pyenv выполните следующую команду

PATH="$HOME/openssl:$PATH" CPPFLAGS="-I$HOME/openssl/include" CFLAGS="-I$HOME/openssl/include/" LDFLAGS="-L$HOME/openssl/lib -Wl,-rpath,$HOME/openssl/lib" LD_LIBRARY_PATH=$HOME/openssl/lib:$LD_LIBRARY_PATH LD_RUN_PATH="$HOME/openssl/lib" CONFIGURE_OPTS="--with-openssl=$HOME/openssl" PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.5

Вы можете добавить -O2, если хотите ускорить запуск раз.

...