# 一鍵安裝 curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash在安裝 Python 3.7.2 時,出現 ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? 這樣的錯誤。
參考錯誤訊息,先依據 https://github.com/pyenv/pyenv/wiki/Common-build-problems 上的說明去檢查並安裝,但安裝了所需的套件之後,仍然有錯誤。後來再去找,才在 pyenv issue #950 找到原因,原來是 Ubuntu 14.04 的 OpenSSL 版本過舊,Python 3.7 需要 OpenSSL 1.0.2 以後的版本才行。
看了一下 Ubuntu 16.04 的 openssl 套件,版本是 1.0.2,於是就拿了 16.04 openssl 的 source package 回來,在 14.04 上編譯出 deb 來安裝就可以了。
# On Ubuntu 16.04 apt-get source openssl # On Ubuntu 14.04 cd openssl-1.0.2g dpkg-buildpackage ls ../*.deb # Output: # ../libssl1.0.0_1.0.2g-1ubuntu4.14_amd64.deb ../libssl-dev_1.0.2g-1ubuntu4.14_amd64.deb ../openssl_1.0.2g-1ubuntu4.14_amd64.deb # ../libssl1.0.0-dbg_1.0.2g-1ubuntu4.14_amd64.deb ../libssl-doc_1.0.2g-1ubuntu4.14_all.deb # Install them ls ../*.deb | xargs sudo dpkg -i再次安裝 Python 3.7.2
pyenv install -v 3.7.2 # 將當前目錄的 python 設定為 3.7.2,也就是以後切換到這個目錄時,自動使用 python 3.7.2 pyenv local 3.7.2 python --version # Output: # Python 3.7.2 # Use local python to make virtualenv mkvirtualenv myproject --python=$(pyenv which python) -r requirements.txt
沒有留言:
張貼留言